summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-06-28 20:43:48 +1000
committer2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-06-28 20:43:48 +1000
commit8ba5c83f7bb6c3fe7e8254d6d69fa84020be43cd (patch)
treeff19828f473f607b4157546ec593d65e4c7b3e87
parentreadme: fix prev commit (diff)
downloadcaelestia-shell-8ba5c83f7bb6c3fe7e8254d6d69fa84020be43cd.tar.gz
caelestia-shell-8ba5c83f7bb6c3fe7e8254d6d69fa84020be43cd.tar.bz2
caelestia-shell-8ba5c83f7bb6c3fe7e8254d6d69fa84020be43cd.zip
picker: sort client rects
Pinned > floating > others
-rw-r--r--modules/areapicker/Picker.qml9
1 files changed, 8 insertions, 1 deletions
diff --git a/modules/areapicker/Picker.qml b/modules/areapicker/Picker.qml
index ad587a8..312c403 100644
--- a/modules/areapicker/Picker.qml
+++ b/modules/areapicker/Picker.qml
@@ -36,7 +36,14 @@ MouseArea {
property real sw: Math.abs(sx - ex)
property real sh: Math.abs(sy - ey)
- property list<var> clients: Hyprland.toplevels.values.filter(c => c.workspace.id === Hyprland.activeWsId)
+ property list<var> clients: Hyprland.toplevels.values.filter(c => c.workspace.id === Hyprland.activeWsId).sort((a, b) => {
+ // Pinned first, then floating, then any other
+ if (a.lastIpcObject.pinned === b.lastIpcObject.pinned)
+ return a.lastIpcObject.floating === b.lastIpcObject.floating ? 0 : a.lastIpcObject.floating ? -1 : 1;
+ if (a.lastIpcObject.pinned)
+ return -1;
+ return 1;
+ })
function checkClientRects(x: real, y: real): void {
for (const client of clients) {