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

+12
View File
@@ -421,6 +421,18 @@ ApplicationWindow {
// Immersive toggle (2026-08-02 immersive-port contract §5.4 exit path 4 /
// §7): lives on the ApplicationWindow so it works open AND closed. The
// text-input gate (port of main.rs:1371-1375) makes it INERT while any
// text input has focus — with the immersive search field focused,
// Shift+I types "I". The FIRST `Shortcut {}` in the tree (BlacklistManagerView.qml:29
// confirms none existed), so no conflicts.
Shortcut {
sequence: "Shift+I"
enabled: !(window.activeFocusItem instanceof TextInput)
onActivated: QbzImmersive.toggle()
}
Loader {
id: screenLoader
anchors.fill: parent