Watch
1
0
Fork
You've already forked souveraine
0

multitasking: the cards were zero pixels wide

ZoneOverview took its width from the Column it sits in, and a Column is as
wide as its widest child. The drawer's search widget supplies that; mission
control is the cards alone and has no search, so the only child left was the
loader — whose width came from the column, whose width came from the loader.
The cycle resolves to zero.

Full-height zero-width cards draw nothing, which is why multitasking was a
blurred backdrop and nothing else while every other signal read healthy:
zones 2, windows 1, subscribed true, loader active, item present, opacity 1,
progress 1. Bound to the panel's width instead, which is what this surface
covers anyway.

Also adds `overview missionControl` and `overview state` — the surface that
had been reported broken was the one nothing but a pill swipe could raise,
and the state readout is what located this.
This commit is contained in:
Fimeg 2026-08-07 01:32:27 -04:00
commit 6f375286bf

View file

@ -349,7 +349,26 @@ Scope {
// things, and could not show a zone you were not on. A zone is
// the destination; its windows live inside its card.
ZoneOverview {
width: overviewLoader.parent.width
// The panel's width, NOT the column's.
//
// `overviewLoader.parent` is the Column, and a Column is
// as wide as its widest child. In the drawer the search
// widget supplies that width; mission control is the cards
// alone and has no search so the only child left was
// this loader, whose width came from the column, whose
// width came from this loader. The cycle resolves to zero:
// measured `column.w: 0, item.w: 0` with `h: 842`.
//
// Full-height, zero-width cards draw nothing, so mission
// control was the blurred backdrop and no cards while
// every other signal read healthy (zones 2, windows 1,
// subscribed true, loader active, item present, opacity 1,
// progress 1). Nothing was broken except one number.
//
// Full width is also what this surface wants: mission
// control covers the whole glass its own mask is
// `missionBackdrop`, not the drawer's sheet.
width: panelWindow.width
height: panelWindow.height * 0.78
visible: (panelWindow.searchingText == "")
onActivated: zone => {
@ -469,7 +488,21 @@ Scope {
missionControl: GlobalStates.missionControlOpen,
zones: ViewtopControl.zoneCount,
windows: ViewtopControl.windows.length,
subscribed: ViewtopControl.subscribed
subscribed: ViewtopControl.subscribed,
searchingText: panelWindow.searchingText,
loaderActive: overviewLoader.active,
loaderHasItem: overviewLoader.item !== null,
activeZone: ViewtopControl.activeZone,
item: overviewLoader.item ? {
w: overviewLoader.item.width,
h: overviewLoader.item.height,
opacity: overviewLoader.item.opacity,
visible: overviewLoader.item.visible,
zones: overviewLoader.item.zones ? overviewLoader.item.zones.length : -1,
progress: overviewLoader.item.progress ?? -1
} : null,
column: { w: columnLayout.width, h: columnLayout.height, visible: columnLayout.visible },
loaderPos: { x: overviewLoader.x, y: overviewLoader.y, w: overviewLoader.width, h: overviewLoader.height }
});
}
}