summaryrefslogtreecommitdiff
path: root/widgets/CustomMouseArea.qml
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/CustomMouseArea.qml
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/CustomMouseArea.qml')
-rw-r--r--widgets/CustomMouseArea.qml21
1 files changed, 21 insertions, 0 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;
+ }
+ }
+}