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:
7 files changed
+727
-10
No files matched your search
@@ -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
|
||||
|
||||
Reference in new issue
Block a user