summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/bar/components/workspaces/ActiveIndicator.qml6
-rw-r--r--modules/bar/components/workspaces/Workspaces.qml9
2 files changed, 8 insertions, 7 deletions
diff --git a/modules/bar/components/workspaces/ActiveIndicator.qml b/modules/bar/components/workspaces/ActiveIndicator.qml
index 2d33e20..5eb446e 100644
--- a/modules/bar/components/workspaces/ActiveIndicator.qml
+++ b/modules/bar/components/workspaces/ActiveIndicator.qml
@@ -15,9 +15,9 @@ Rectangle {
required property int groupOffset
property int currentIdx: Hyprland.activeWsId - 1 - groupOffset
- property real leading: workspaces[currentIdx][vertical ? "y" : "x"]
- property real trailing: workspaces[currentIdx][vertical ? "y" : "x"]
- property real currentSize: workspaces[currentIdx].size
+ property real leading: (vertical ? workspaces[currentIdx]?.y : workspaces[currentIdx]?.x) ?? 0
+ property real trailing: (vertical ? workspaces[currentIdx]?.y : workspaces[currentIdx]?.x) ?? 0
+ property real currentSize: (workspaces[currentIdx]?.size) ?? 0
property real size: Math.abs(leading - trailing) + currentSize
property real offset: Math.min(leading, trailing)
diff --git a/modules/bar/components/workspaces/Workspaces.qml b/modules/bar/components/workspaces/Workspaces.qml
index a94928b..35cc2b0 100644
--- a/modules/bar/components/workspaces/Workspaces.qml
+++ b/modules/bar/components/workspaces/Workspaces.qml
@@ -57,10 +57,11 @@ Item {
onPressed: event => Hyprland.dispatch(`workspace ${layout.childAt(event.x, event.y).index + root.groupOffset + 1}`)
onWheel: event => {
- if (event.angleDelta.y < 0)
- Hyprland.dispatch(`workspace r+1`);
- else if (event.angleDelta.y > 0 && Hyprland.activeWorkspace.id > 1)
- Hyprland.dispatch(`workspace r-1`);
+ const activeWs = Hyprland.activeClient?.workspace?.name;
+ if (activeWs?.startsWith("special:"))
+ Hyprland.dispatch(`togglespecialworkspace ${activeWs.slice(8)}`);
+ else if (event.angleDelta.y < 0 || Hyprland.activeWsId > 1)
+ Hyprland.dispatch(`workspace r${event.angleDelta.y > 0 ? "-" : "+"}1`);
}
}
}