[gtk: 14/15] gtkgestureswipe: Don't filter hold events




commit fe86aa5f6bede676756990c7c6496ef87abf721d
Author: José Expósito <jose exposito89 gmail com>
Date:   Mon Jun 28 17:51:17 2021 +0200

    gtkgestureswipe: Don't filter hold events
    
    Part-of: <!3454>

 gtk/gtkgesturesingle.c | 4 ++++
 gtk/gtkgestureswipe.c  | 5 +++--
 2 files changed, 7 insertions(+), 2 deletions(-)
---
diff --git a/gtk/gtkgesturesingle.c b/gtk/gtkgesturesingle.c
index 8a4b7a14c5..bf415698b7 100644
--- a/gtk/gtkgesturesingle.c
+++ b/gtk/gtkgesturesingle.c
@@ -197,6 +197,10 @@ gtk_gesture_single_handle_event (GtkEventController *controller,
         }
 
       break;
+    case GDK_TOUCHPAD_HOLD:
+      if (gdk_touchpad_event_get_n_fingers (event) == 1)
+        return FALSE;
+      /* fallthrough */
     case GDK_TOUCH_CANCEL:
     case GDK_GRAB_BROKEN:
     case GDK_TOUCHPAD_SWIPE:
diff --git a/gtk/gtkgestureswipe.c b/gtk/gtkgestureswipe.c
index ac52638298..e168aa84a3 100644
--- a/gtk/gtkgestureswipe.c
+++ b/gtk/gtkgestureswipe.c
@@ -84,8 +84,9 @@ static gboolean
 gtk_gesture_swipe_filter_event (GtkEventController *controller,
                                 GdkEvent           *event)
 {
-  /* Let touchpad swipe events go through, only if they match n-points  */
-  if (gdk_event_get_event_type (event) == GDK_TOUCHPAD_SWIPE)
+  /* Let touchpad swipe and hold events go through, only if they match n-points */
+  if (gdk_event_get_event_type (event) == GDK_TOUCHPAD_SWIPE ||
+      gdk_event_get_event_type (event) == GDK_TOUCHPAD_HOLD)
     {
       guint n_points;
       guint n_fingers;


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