diff options
| author | 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> | 2025-09-14 12:23:41 +1000 |
|---|---|---|
| committer | 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> | 2025-09-14 12:23:53 +1000 |
| commit | b2b862135a4d0ca2694985fc0d4a04e657556f46 (patch) | |
| tree | d52e7455645b97d2f7f6b7c212066371cae8b849 | |
| parent | [CI] chore: update flake (diff) | |
| download | caelestia-shell-b2b862135a4d0ca2694985fc0d4a04e657556f46.tar.gz caelestia-shell-b2b862135a4d0ca2694985fc0d4a04e657556f46.tar.bz2 caelestia-shell-b2b862135a4d0ca2694985fc0d4a04e657556f46.zip | |
internal: close panels when fullscreen app
See #609
| -rw-r--r-- | modules/Shortcuts.qml | 11 | ||||
| -rw-r--r-- | modules/drawers/Drawers.qml | 8 |
2 files changed, 18 insertions, 1 deletions
diff --git a/modules/Shortcuts.qml b/modules/Shortcuts.qml index 2630941..bf1cded 100644 --- a/modules/Shortcuts.qml +++ b/modules/Shortcuts.qml @@ -8,6 +8,7 @@ Scope { id: root property bool launcherInterrupted + readonly property bool hasFullscreen: Hypr.focusedWorkspace?.toplevels.values.some(t => t.lastIpcObject.fullscreen === 2) ?? false CustomShortcut { name: "controlCenter" @@ -19,6 +20,8 @@ Scope { name: "showall" description: "Toggle launcher, dashboard and osd" onPressed: { + if (root.hasFullscreen) + return; const v = Visibilities.getForActive(); v.launcher = v.dashboard = v.osd = v.utilities = !(v.launcher || v.dashboard || v.osd || v.utilities); } @@ -28,6 +31,8 @@ Scope { name: "dashboard" description: "Toggle dashboard" onPressed: { + if (root.hasFullscreen) + return; const visibilities = Visibilities.getForActive(); visibilities.dashboard = !visibilities.dashboard; } @@ -37,6 +42,8 @@ Scope { name: "session" description: "Toggle session menu" onPressed: { + if (root.hasFullscreen) + return; const visibilities = Visibilities.getForActive(); visibilities.session = !visibilities.session; } @@ -47,7 +54,7 @@ Scope { description: "Toggle launcher" onPressed: root.launcherInterrupted = false onReleased: { - if (!root.launcherInterrupted) { + if (!root.launcherInterrupted && !root.hasFullscreen) { const visibilities = Visibilities.getForActive(); visibilities.launcher = !visibilities.launcher; } @@ -66,6 +73,8 @@ Scope { function toggle(drawer: string): void { if (list().split("\n").includes(drawer)) { + if (root.hasFullscreen && ["launcher", "session", "dashboard"].includes(drawer)) + return; const visibilities = Visibilities.getForActive(); visibilities[drawer] = !visibilities[drawer]; } else { diff --git a/modules/drawers/Drawers.qml b/modules/drawers/Drawers.qml index 858a47d..f0ef042 100644 --- a/modules/drawers/Drawers.qml +++ b/modules/drawers/Drawers.qml @@ -27,6 +27,14 @@ Variants { StyledWindow { id: win + readonly property bool hasFullscreen: Hypr.monitorFor(screen)?.activeWorkspace?.toplevels.values.some(t => t.lastIpcObject.fullscreen === 2) ?? false + + onHasFullscreenChanged: { + visibilities.launcher = false; + visibilities.session = false; + visibilities.dashboard = false; + } + screen: scope.modelData name: "drawers" WlrLayershell.exclusionMode: ExclusionMode.Ignore |