From fe86aa5f6bede676756990c7c6496ef87abf721d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Exp=C3=B3sito?= Date: Mon, 28 Jun 2021 17:51:17 +0200 Subject: [PATCH] gtkgestureswipe: Don't filter hold events Part-of: --- 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;