Watch
1
0
Fork
You've already forked souveraine
0

shell: mission control draws the cards it was already building

The panel, its mask and the loader all moved to overviewOpen ||
missionControlOpen when mission control landed; the Column holding them
did not. So the second-stage pill swipe raised a panel whose entire
contents were invisible — WindowOverview instantiated, laid out, and never
shown.

Search stays overview-only: mission control takes no keyboard focus on
purpose, so a field there is one you can see and cannot use. Outside-tap
now clears both states, because with no focus grab that tap is mission
control's only way back.
This commit is contained in:
Fimeg 2026-08-04 14:43:35 -04:00
commit 44a54330c2

View file

@ -136,17 +136,30 @@ Scope {
// While the OSK is up this is the ONLY outside-tap dismiss the // While the OSK is up this is the ONLY outside-tap dismiss the
// focus-grab route is deliberately disabled then (see header). // focus-grab route is deliberately disabled then (see header).
MouseArea { MouseArea {
enabled: GlobalStates.overviewOpen && overviewLoader.active enabled: (GlobalStates.overviewOpen || GlobalStates.missionControlOpen)
&& overviewLoader.active
x: columnLayout.x + overviewLoader.x x: columnLayout.x + overviewLoader.x
y: columnLayout.y + overviewLoader.y y: columnLayout.y + overviewLoader.y
width: overviewLoader.width width: overviewLoader.width
height: overviewLoader.height height: overviewLoader.height
onClicked: GlobalStates.overviewOpen = false // Closes whichever one is up. Mission control has no focus grab to
// fall back on it takes no keyboard focus so this is its only
// outside-tap dismissal, and leaving it out stranded the surface
// with no way back but the rail.
onClicked: {
GlobalStates.overviewOpen = false;
GlobalStates.missionControlOpen = false;
}
} }
Column { Column {
id: columnLayout id: columnLayout
visible: GlobalStates.overviewOpen // Both ways in. The panel, the mask and the loader were all moved
// to `overviewOpen || missionControlOpen` when mission control
// landed and this was left behind, so the second-stage pill swipe
// raised a panel whose entire contents were invisible the cards
// were built, instantiated, and never shown.
visible: GlobalStates.overviewOpen || GlobalStates.missionControlOpen
anchors { anchors {
horizontalCenter: parent.horizontalCenter horizontalCenter: parent.horizontalCenter
top: parent.top top: parent.top
@ -161,6 +174,12 @@ Scope {
SearchWidget { SearchWidget {
id: searchWidget id: searchWidget
// Search belongs to the overview, not to mission control:
// "switch to what is running" has nothing to type into, and
// the panel deliberately takes no keyboard focus in that mode
// (see `keyboardFocus` above), so a field here would be one
// you could see and not use.
visible: GlobalStates.overviewOpen
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
Synchronizer on searchingText { Synchronizer on searchingText {
property alias source: panelWindow.searchingText property alias source: panelWindow.searchingText