gtkgestureswipe: Don't filter hold events
authorJosé Expósito <jose.exposito89@gmail.com>
Mon, 28 Jun 2021 15:51:17 +0000 (17:51 +0200)
committerCarlos Garnacho <carlosg@gnome.org>
Wed, 26 Jan 2022 21:49:53 +0000 (22:49 +0100)
Part-of: <!3454>

gtk/gtkgesturesingle.c
gtk/gtkgestureswipe.c

index 8a4b7a14c54e1b542c5768a0a696f55e8a79da93..bf415698b7db8fb0dd702e86cb04e51f7ce0cac3 100644 (file)
@@ -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:
index ac52638298b1800e604685752c7dfdd8d9fd6f1c..e168aa84a3f1002f9e91391cee9dd81a3d8797d8 100644 (file)
@@ -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;