Problem
The manifest/platform layer models fullscreen, but UiApp binds no fullscreen action and the app effect surface cannot enter or leave fullscreen by window label. The current public window verbs cover close, minimize, hide, and show.
Scope
Add setWindowFullscreen(label, bool) plus an optional toggle convenience to the Zig effect surface, bind it through UiApp, and keep platform state reporting in sync. Use set semantics so restoring persisted layout does not require parity tracking.
Acceptance
- An app can request entering and leaving fullscreen by label.
- Repeating the same request is a no-op.
- Platform state reports user-initiated and effect-initiated fullscreen transitions.
Upstream candidate
Small-to-medium port from the Cockpit fork, separately reviewable from per-window chrome.
Problem
The manifest/platform layer models
fullscreen, butUiAppbinds no fullscreen action and the app effect surface cannot enter or leave fullscreen by window label. The current public window verbs cover close, minimize, hide, and show.Scope
Add
setWindowFullscreen(label, bool)plus an optional toggle convenience to the Zig effect surface, bind it throughUiApp, and keep platform state reporting in sync. Use set semantics so restoring persisted layout does not require parity tracking.Acceptance
Upstream candidate
Small-to-medium port from the Cockpit fork, separately reviewable from per-window chrome.