shell: the overview arrives as one surface, and mission control finally lands
Everything drove off a visible/not-visible flag, so the cards appeared rather than the overview opening. One shared `progress` now: the strip slides 24px, each card takes its own share of it staggered by index and capped at the fifth, and scale runs 0.86 to 1.0 — the reference shell's numbers, driven from the same clock instead of a timer per card. The cap is what stops the tenth card starting half a second after the first, which reads as loading rather than opening. This is also SHELL-ECOSYSTEM's stated model, taken from Phosh: state gates visibility, never the reverse. `missionControlOpen` has been set by the pill's second-stage swipe since July and consumed by NOTHING — TASK-14 records the Auxo-like card surface it was meant to raise as never built. WindowOverview is that surface. The state reaches something now instead of being set and dropped. Mission control is the cards alone: no search, and no keyboard focus, because it is "switch to what is running" and not "find something" — and taking the keyboard would summon the OSK over a surface with no field.
This commit is contained in:
parent
133daa94ef
commit
cc4bb83573
2 changed files with 57 additions and 17 deletions
|
|
@ -40,17 +40,27 @@ Scope {
|
|||
property string searchingText: ""
|
||||
readonly property HyprlandMonitor monitor: Hyprland.monitorFor(panelWindow.screen)
|
||||
property bool monitorIsFocused: (Hyprland.focusedMonitor?.id == monitor?.id)
|
||||
visible: GlobalStates.overviewOpen
|
||||
// Two ways in, one surface. The pill's second-stage swipe has set
|
||||
// `missionControlOpen` since 2026-07, and TASK-14 records that NO
|
||||
// SURFACE CONSUMES IT — the Auxo-like card surface it was meant to
|
||||
// raise was never built. WindowOverview is that surface, so the state
|
||||
// finally reaches something instead of being set and dropped.
|
||||
//
|
||||
// Mission control is the cards alone: no search, because it is a
|
||||
// "switch to what is running" gesture, not a "find something" one.
|
||||
visible: GlobalStates.overviewOpen || GlobalStates.missionControlOpen
|
||||
|
||||
WlrLayershell.namespace: "quickshell:overview"
|
||||
// Overlay, not Top: the second-stage edge swipe must bring the
|
||||
// overview up over a fullscreen app (fullscreen renders above Top).
|
||||
WlrLayershell.layer: WlrLayer.Overlay
|
||||
// Only the search half wants the keyboard. Mission control taking it
|
||||
// would summon the OSK over the cards for a surface with no text field.
|
||||
WlrLayershell.keyboardFocus: GlobalStates.overviewOpen ? WlrKeyboardFocus.OnDemand : WlrKeyboardFocus.None
|
||||
color: "transparent"
|
||||
|
||||
mask: Region {
|
||||
item: GlobalStates.overviewOpen ? columnLayout : null
|
||||
item: (GlobalStates.overviewOpen || GlobalStates.missionControlOpen) ? columnLayout : null
|
||||
}
|
||||
|
||||
anchors {
|
||||
|
|
@ -160,7 +170,8 @@ Scope {
|
|||
Loader {
|
||||
id: overviewLoader
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
active: GlobalStates.overviewOpen && (Config?.options.overview.enable ?? true)
|
||||
active: (GlobalStates.overviewOpen || GlobalStates.missionControlOpen)
|
||||
&& (Config?.options.overview.enable ?? true)
|
||||
// WindowOverview, not OverviewWidget. The latter draws a grid
|
||||
// of workspaces from HyprlandData; viewtop has neither, so it
|
||||
// rendered an empty frame and read as the overview being
|
||||
|
|
|
|||
Loading…
Reference in a new issue