Let fullscreen auto-hide the title-bar band - #596
Draft
jiweiyuan wants to merge 2 commits into
Draft
Conversation
`NSToolbar.isVisible` belongs to the windowed title bar. Once the fullscreen title-bar host owns the toolbar, hiding it there left the band reserved but empty — a blank strip across the top of the screen that outlived the maximized detail — and writing the property back during a fullscreen transition made AppKit drop the toolbar's items outright. `willUseFullScreenPresentationOptions` is the only switch macOS reads for that band, so ask for `.autoHideToolbar` there and leave the band to the system: it slides away with the menu bar and returns when the pointer reaches the top edge. `syncMaximizedChrome` stops writing `isVisible` on that side of the boundary, and re-derives it a runloop after the exit transition, once the detail may still be maximized.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Parked as a draft for the record — the mechanism works, but auto-hiding the whole title-bar band is probably the wrong call for the interaction. Not for merge as-is.
The bug
In fullscreen with a file detail maximized, a blank strip sat across the top of the screen: the title-bar band stayed reserved but empty, and it outlived the maximized detail.
NSToolbar.isVisiblebelongs to the windowed title bar. Once the fullscreen title-bar host owns the toolbar, hiding it there reserves the band without filling it — and writing the property back during a fullscreen transition makes AppKit drop the toolbar's items outright.What this does
willUseFullScreenPresentationOptionsis the only switch macOS reads for that band, so this asks for.autoHideToolbarand leaves the band to the system: it slides away with the menu bar and returns when the pointer reaches the top edge.syncMaximizedChromestops writingisVisibleon the fullscreen side of the boundary, and re-derives it a runloop after the exit transition, once the detail may still be maximized.Why it's parked
AppKit asks for these options only on the way in, so auto-hide is a property of the whole fullscreen session — the maximize button can't toggle it. That means the band hides for every fullscreen session, not just a maximized detail, and it comes back on any pointer trip to the top edge. That's a bigger behavior change than the bug warranted, and it isn't obviously the better interaction.
Not verified on screen: the band only misbehaves in fullscreen with a maximized detail, and the app can't be screenshotted in fullscreen.
Release Notes: None — draft, not for merge.