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:
parent
1a3c24fadb
commit
44a54330c2
1 changed files with 22 additions and 3 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue