feat(qt): immersive root overlay, header band, entry/exit chrome (B2)

Root overlay self-gated on QbzImmersive.open with the load-bearing
click-blocker, 6s auto-hide with the VNC hover-storm delta guard,
fullscreen guard, exit paths 2-4, seek arrows, the header band (view
menu in Slint order, search field on the inert B1 surface, window
controls with the first FullScreen write in the Qt frontend), the
ViewModeMenu Immersive row live, Shift+I in Main.qml with the
text-input gate, QbzLineEdit fieldActive seam (D16). Panels are stubs;
B3/B4/B5 replace them. RFB evidence in scratchpad/immersive-b2/.

km
This commit is contained in:
vicrodh committed 2026-08-02 20:48:40 -06:00
1 parent 3c721a448e
commit 8bc255269d
7 files changed
+727 -10

No files matched your search

@@ -96,6 +96,13 @@ Rectangle {
input.focus = false
}
// Immersive-port contract D16 (2026-08-02, additive one-liner): the ONE
// read-only seam into the inner TextInput's focus. The immersive header
// gates Shift+I and the seek arrows on this ("inert while any text input
// has focus", §5.4) — the input itself stays deliberately unexposed
// (:186). No behavior change for existing consumers.
readonly property bool fieldActive: input.activeFocus
/// Focus the field from OUTSIDE the control — what a modal needs on open.
///
/// The deferred Timer below already existed, but it was driven only by