two swipes, one progress; home is zone 0; pocket is a belief
This commit is contained in:
parent
6c0730a790
commit
d7965a57fd
188 changed files with 9258 additions and 3970 deletions
|
|
@ -31,6 +31,7 @@ import qs.modules.common.functions as CF
|
|||
import Qt.labs.synchronizer
|
||||
import QtQuick
|
||||
import QtQuick.Controls
|
||||
import QtQuick.Effects
|
||||
import QtQuick.Layouts
|
||||
import Quickshell
|
||||
import Quickshell.Io
|
||||
|
|
@ -79,7 +80,11 @@ Scope {
|
|||
// panel sheet was added — the mask must cover what panelBg
|
||||
// covers, or the sheet renders clipped and its margin is dead
|
||||
// input space.
|
||||
item: panelBg
|
||||
//
|
||||
// Mission control covers the whole glass (the blurred home
|
||||
// backdrop), so there it is the whole window or the cards take no
|
||||
// taps at all.
|
||||
item: GlobalStates.missionControlOpen ? null : panelBg
|
||||
}
|
||||
|
||||
anchors {
|
||||
|
|
@ -215,9 +220,46 @@ Scope {
|
|||
// the wallpaper reads as a soft base behind it. Declared before the
|
||||
// column (stacked below it) so nothing here can eat taps; it is
|
||||
// input-transparent anyway.
|
||||
// Multitasking sits on the home zone, blurred — not on the app you came
|
||||
// from, and not on nothing. MultiEffect (Qt6), not GaussianBlur: that
|
||||
// one needs Qt5Compat and dies on the phone's GLES path (2026-08-05).
|
||||
// The sheet under it is the known-good look if the effect no-ops.
|
||||
Item {
|
||||
id: missionBackdrop
|
||||
visible: GlobalStates.missionControlOpen
|
||||
anchors.fill: parent
|
||||
z: -1
|
||||
|
||||
Image {
|
||||
id: homeWall
|
||||
anchors.fill: parent
|
||||
source: Config.options.background.wallpaperPath ?? ""
|
||||
fillMode: Image.PreserveAspectCrop
|
||||
cache: true
|
||||
asynchronous: true
|
||||
visible: false
|
||||
}
|
||||
|
||||
MultiEffect {
|
||||
anchors.fill: parent
|
||||
source: homeWall
|
||||
visible: homeWall.status === Image.Ready
|
||||
blurEnabled: true
|
||||
blurMax: 64
|
||||
blur: 1
|
||||
saturation: -0.2
|
||||
brightness: -0.25
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
anchors.fill: parent
|
||||
color: CF.ColorUtils.transparentize(Appearance?.colors?.colLayer0 ?? "#101010", 0.25)
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: panelBg
|
||||
visible: columnLayout.visible
|
||||
visible: columnLayout.visible && !GlobalStates.missionControlOpen
|
||||
anchors.fill: columnLayout
|
||||
// The sheet breathes past the column so the drawer reads as a
|
||||
// panel, not as widgets floating on the wallpaper. The mask
|
||||
|
|
@ -291,16 +333,24 @@ Scope {
|
|||
// of workspaces from HyprlandData; viewtop has neither, so it
|
||||
// rendered an empty frame and read as the overview being
|
||||
// broken. See WindowOverview.qml's header.
|
||||
WindowOverview {
|
||||
// ZoneOverview, not WindowOverview (TASK-60). The flat list
|
||||
// of window cards drew the two halves of a split as unrelated
|
||||
// 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
|
||||
height: panelWindow.height * 0.78
|
||||
visible: (panelWindow.searchingText == "")
|
||||
onActivated: toplevel => {
|
||||
toplevel?.activate();
|
||||
onActivated: zone => {
|
||||
// The compositor moves the canvas; the shell only asks.
|
||||
// Going to a zone is not "activate a toplevel" — that
|
||||
// was the old model's verb and it could not express
|
||||
// "this place, which happens to hold two windows".
|
||||
ViewtopControl.zone(zone);
|
||||
GlobalStates.overviewOpen = false;
|
||||
GlobalStates.missionControlOpen = false;
|
||||
}
|
||||
onClosed: toplevel => toplevel?.close()
|
||||
onClosed: id => ViewtopControl.close(id)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue