Repository navigation
PDF Tools: Read mode takes the screen (window.fullscreen) - #522
Conversation
Read mode's tap also asks the shell for window.fullscreen {on: true}
(#520), and Read mode ending in any way asks {on: false}: show() checks
after every change. on_app_fullscreen(false), from Esc, ⌘F or the focus
leaving, ends Read mode too, on the same page at the same zoom, and a
full screen that starts after Read mode already ended goes straight
back. The answer is never shown: refused, or with no window service
(card-host), Read mode fills the window as before.
tests/ui.py's shell run checks the full screen and the window coming
back after Exit read mode and the corner control, and a new step leaves
Read mode by Esc. Its OctoSense check matches any octosense* executable,
demo copies included. Evidence from the Linux build host is in
tests/evidence/read-fullscreen-20261013.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
macOS run on this head (9c486f5)
All journeys passed, light and dark. That includes:
The maintainer also used Read mode in a visible window on 13 Oct. The real macOS window entered full screen and came back out both times: first ended by the app's exit, then by Esc. |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Local CI passed on 48fa6d4 ( GitHub would run for this PR: desktop.yml, phone.yml, apps.yml. Merged on this local pass (macOS runner queue); GitHub CI runs on the merge commit on main.
Skipped (these did NOT pass; (!) marks a skip that blocks tools/ci-local-merge.sh):
Notes:
|
PDF Tools' Read mode now takes the whole screen in a desktop shell, through #520's
window.fullscreen. Stacked on #520 (basefeat/app-fullscreen): merge #520 first, then retarget this tomain.What changes
All in
apps/pdftools/bundle/main.splash:window.fullscreen {on: true}. The window covers the desk with no bar, title bar or dock, and no screen edge brings them back.{on: false}.show()checks after every change (screen_back), so no path is missed.on_app_fullscreen(on): when the shell ends the full screen (Esc, ⌘F, another window taking the focus), Read mode ends too, on the same page at the same zoom. If the full screen arrives after Read mode already ended, it goes straight back.no service answers "window" on this device), Read mode fills the window as before.mod.pdftools.screen_full, which survives a restyle like the rest ofst.Quick Deck is not touched.
Tests
cargo test --locked -p octosense-shell --lib pdftools_modelpassed 22 of 22 on the Linux build host, with thismain.splash. They also parse the whole script.tests/ui.py,shellrun. The journey now checks that Read mode puts the window in full screen and gives it back when Read mode is left by Exit read mode (light) or the corner control (dark). It then has a new step,read_mode_escape: enter Read mode, check full screen, press Esc, and check that Read mode ended on the same page at the same zoom and the window is back.octosense*executable, demo copies such asoctosense-playback-<sha>included, or the packaged app.Evidence (Linux, on #520 at 18c1164)
apps/pdftools/tests/evidence/read-fullscreen-20261013/(README in both languages, four frames,receipt.json):[54,76,1292,662]in a 1400×900 window[0,0,1400,900][54,76,1292,662][0,0,1400,900]→[54,76,1292,662]From the shell's log, three presentations:
{on: true}was answered{"applied":true,"fills_screen":true,"fullscreen":true}, and the presentation was ended by the app (App) with{on: false}after Exit read mode.{on: true}, thenEscape. PDF Tools sent nothing after Esc: it heardon_app_fullscreen(false), left Read mode, and didn't bounce.{on: true}, then the app's{on: false}after the corner control.Each time the log notes that the host window wasn't asked to enter full screen, because the windows are hidden.
A macOS run of the same journey is pending: the Mac's shared shell lock is held by the maintainer's demo.
Unverified
🤖 Generated with Claude Code