[gnome-shell/gbsneto/40-stuff: 51/68] swipeTracker: Hack to make multiple trackers work




commit cc92cf371431ddbc23e0a1f7067d6bd31fe48a58
Author: Florian Müllner <fmuellner gnome org>
Date:   Wed Jun 10 01:45:08 2020 +0200

    swipeTracker: Hack to make multiple trackers work

 js/ui/swipeTracker.js | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)
---
diff --git a/js/ui/swipeTracker.js b/js/ui/swipeTracker.js
index 333bac1582..5b5417d159 100644
--- a/js/ui/swipeTracker.js
+++ b/js/ui/swipeTracker.js
@@ -102,6 +102,16 @@ const TouchpadSwipeGesture = GObject.registerClass({
         let [x, y] = event.get_coords();
         let [dx, dy] = event.get_gesture_motion_delta();
 
+        let gestureOrientation = -1;
+        if (dx !== dy) {
+            gestureOrientation = Math.abs(dx) > Math.abs(dy)
+                ? Clutter.Orientation.HORIZONTAL
+                : Clutter.Orientation.VERTICAL;
+        }
+
+        if (gestureOrientation >= 0 && gestureOrientation !== this._orientation)
+            return Clutter.EVENT_PROPAGATE;
+
         let delta;
         if (this._orientation === Clutter.Orientation.VERTICAL)
             delta = dy / TOUCHPAD_BASE_HEIGHT;
@@ -126,7 +136,9 @@ const TouchpadSwipeGesture = GObject.registerClass({
             break;
         }
 
-        return Clutter.EVENT_STOP;
+        return gestureOrientation === this._orientation
+            ? Clutter.EVENT_STOP
+            : Clutter.EVENT_PROPAGATE;
     }
 
     destroy() {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]