Skip to content

Fix reading sync and add resync and independent side margins - #7

Merged
FedyaLight merged 2 commits into
mainfrom
fix/reader-sync-and-horizontal-margins
Nov 5, 2026
Merged

FedyaLight merged 2 commits into
mainfrom
fix/reader-sync-and-horizontal-margins

Conversation

@FedyaLight

@FedyaLight FedyaLight commented Nov 5, 2026 •

Copy link
Copy Markdown
Owner

Long scripts can show different passages on the reader and controller because WebKit and Chromium wrap text differently despite identical viewport dimensions and settings. The supplied 13 KB script reproduced accumulated word-position differences of up to 180 px at a 64 px font size.

This change compares measured word geometry before reusing pixel positions and maps the primary preview through the same word anchors as other readers. Paused previews apply corrections immediately.

  • Add a two-arrow Synchronize screens button below the preview. It requests a fresh snapshot from the leading reader, preserves its passage and playback, restores the preview, and waits for follower acknowledgments. Lost replies time out and can be retried.
  • Add independent shared left/right margins under Advanced → Margins. Both initially inherit Side margins; double-clicking their values restores inheritance. Profiles, backups, and individual screen overrides preserve the settings.
  • Document the protocol and controls, and localize the new synchronization controls in all six interface languages.
  • Prepare Efir 1.4.1 across macOS, Windows/Linux and Android, with build/version code 8 and release notes in docs/releases/1.4.1.md.

Validation:

  • New Chromium/WebKit regression fails against the original main branch at the late-script seek and passes after the fix.
  • The supplied script passes using its natural browser wrapping differences, including three-screen playback, manual synchronization during playback, timeout/retry, and margin profile/reload/backup checks. The private script is not checked in.
  • Generated long-script regression passes with accumulated metric differences.
  • Existing browser, multiple-display, remote, responsive-layout, performance, and relay suites pass; 2100 layout checks report zero issues.
  • Universal macOS Release build succeeds for Intel and Apple Silicon; code signature verification and archive integrity checks pass.

The tests exercise Chromium and WebKit with the production Swift relay. Physical phone testing remains a separate device check.

@FedyaLight
FedyaLight merged commit a570f8f into main Nov 5, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant