[gtk: 10/15] gtkgesture: Add hold to EVENT_IS_TOUCHPAD_GESTURE




commit 382341e1bf54683330ff8b4d1dd4073e9ccc892a
Author: José Expósito <jose exposito89 gmail com>
Date:   Mon Jun 28 08:32:17 2021 +0200

    gtkgesture: Add hold to EVENT_IS_TOUCHPAD_GESTURE
    
    Part-of: <!3454>

 gtk/gtkgesture.c | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)
---
diff --git a/gtk/gtkgesture.c b/gtk/gtkgesture.c
index 33b2fb9326..19929bc1fc 100644
--- a/gtk/gtkgesture.c
+++ b/gtk/gtkgesture.c
@@ -171,7 +171,8 @@ static guint signals[N_SIGNALS] = { 0 };
 #define BUTTONS_MASK (GDK_BUTTON1_MASK | GDK_BUTTON2_MASK | GDK_BUTTON3_MASK)
 
 #define EVENT_IS_TOUCHPAD_GESTURE(e) (gdk_event_get_event_type (e) == GDK_TOUCHPAD_SWIPE || \
-                                      gdk_event_get_event_type (e) == GDK_TOUCHPAD_PINCH)
+                                      gdk_event_get_event_type (e) == GDK_TOUCHPAD_PINCH || \
+                                      gdk_event_get_event_type (e) == GDK_TOUCHPAD_HOLD)
 
 GList * _gtk_gesture_get_group_link (GtkGesture *gesture);
 
@@ -258,7 +259,8 @@ _gtk_gesture_get_n_touchpad_points (GtkGesture *gesture,
   if (only_active &&
       (data->state == GTK_EVENT_SEQUENCE_DENIED ||
        (event_type == GDK_TOUCHPAD_SWIPE && phase == GDK_TOUCHPAD_GESTURE_PHASE_END) ||
-       (event_type == GDK_TOUCHPAD_PINCH && phase == GDK_TOUCHPAD_GESTURE_PHASE_END)))
+       (event_type == GDK_TOUCHPAD_PINCH && phase == GDK_TOUCHPAD_GESTURE_PHASE_END) ||
+       (event_type == GDK_TOUCHPAD_HOLD && phase == GDK_TOUCHPAD_GESTURE_PHASE_END)))
     return 0;
 
   return n_fingers;
@@ -390,8 +392,8 @@ _update_touchpad_deltas (PointData *data)
 {
   GdkEvent *event = data->event;
   GdkTouchpadGesturePhase phase;
-  double dx;
-  double dy;
+  double dx = 0;
+  double dy = 0;
 
   if (!event)
     return;
@@ -399,7 +401,10 @@ _update_touchpad_deltas (PointData *data)
   if (EVENT_IS_TOUCHPAD_GESTURE (event))
     {
       phase = gdk_touchpad_event_get_gesture_phase (event);
-      gdk_touchpad_event_get_deltas (event, &dx, &dy);
+
+      if (gdk_event_get_event_type (event) != GDK_TOUCHPAD_HOLD)
+        gdk_touchpad_event_get_deltas (event, &dx, &dy);
+
       if (phase == GDK_TOUCHPAD_GESTURE_PHASE_BEGIN)
         data->accum_dx = data->accum_dy = 0;
       else if (phase == GDK_TOUCHPAD_GESTURE_PHASE_UPDATE)


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