summaryrefslogtreecommitdiff
path: root/widgets
diff options
context:
space:
mode:
author2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-07-09 23:53:01 +1000
committer2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-07-09 23:53:01 +1000
commit2c9feb7544a3c3e226f5db4ef8cfd68642c5d781 (patch)
treef5d347cab8d05001ea4bed734008e9359c2aa91d /widgets
parentdashboard: sleep cava (diff)
downloadcaelestia-shell-2c9feb7544a3c3e226f5db4ef8cfd68642c5d781.tar.gz
caelestia-shell-2c9feb7544a3c3e226f5db4ef8cfd68642c5d781.tar.bz2
caelestia-shell-2c9feb7544a3c3e226f5db4ef8cfd68642c5d781.zip
internal: fix scrolling for high res devices
Implements first part of #202
Diffstat (limited to 'widgets')
-rw-r--r--widgets/CustomMouseArea.qml21
-rw-r--r--widgets/StyledScrollBar.qml5
2 files changed, 24 insertions, 2 deletions
diff --git a/widgets/CustomMouseArea.qml b/widgets/CustomMouseArea.qml
new file mode 100644
index 0000000..7c973c2
--- /dev/null
+++ b/widgets/CustomMouseArea.qml
@@ -0,0 +1,21 @@
+import QtQuick
+
+MouseArea {
+ property int scrollAccumulatedY: 0
+
+ function onWheel(event: WheelEvent): void {
+ }
+
+ onWheel: event => {
+ // Update accumulated scroll
+ if (Math.sign(event.angleDelta.y) !== Math.sign(scrollAccumulatedY))
+ scrollAccumulatedY = 0;
+ scrollAccumulatedY += event.angleDelta.y;
+
+ // Trigger handler and reset if above threshold
+ if (Math.abs(scrollAccumulatedY) >= 120) {
+ onWheel(event);
+ scrollAccumulatedY = 0;
+ }
+ }
+}
diff --git a/widgets/StyledScrollBar.qml b/widgets/StyledScrollBar.qml
index c655536..6fc80a9 100644
--- a/widgets/StyledScrollBar.qml
+++ b/widgets/StyledScrollBar.qml
@@ -21,10 +21,11 @@ ScrollBar {
}
}
- MouseArea {
+ CustomMouseArea {
z: -1
anchors.fill: parent
- onWheel: event => {
+
+ function onWheel(event: WheelEvent): void {
if (event.angleDelta.y > 0)
root.decrease();
else if (event.angleDelta.y < 0)