Commit 5d17338b authored by Carlos Garnacho's avatar Carlos Garnacho

gtkgestureswipe: Handle touchpad swipe events

These will only trigger the gesture if it's been created with
the same GtkGesture::n-points than n_fingers in the event.
parent 5f68a287
......@@ -77,6 +77,26 @@ gtk_gesture_swipe_finalize (GObject *object)
G_OBJECT_CLASS (gtk_gesture_swipe_parent_class)->finalize (object);
static gboolean
gtk_gesture_swipe_filter_event (GtkEventController *controller,
const GdkEvent *event)
/* Let touchpad swipe events go through, only if they match n-points */
if (event->type == GDK_TOUCHPAD_SWIPE)
guint n_points;
g_object_get (G_OBJECT (controller), "n-points", &n_points, NULL);
if (event->touchpad_swipe.n_fingers == n_points)
return FALSE;
return TRUE;
return GTK_EVENT_CONTROLLER_CLASS (gtk_gesture_swipe_parent_class)->filter_event (controller, event);
static void
_gtk_gesture_swipe_clear_backlog (GtkGestureSwipe *gesture,
guint32 evtime)
......@@ -188,10 +208,13 @@ static void
gtk_gesture_swipe_class_init (GtkGestureSwipeClass *klass)
GtkGestureClass *gesture_class = GTK_GESTURE_CLASS (klass);
GtkEventControllerClass *event_controller_class = GTK_EVENT_CONTROLLER_CLASS (klass);
GObjectClass *object_class = G_OBJECT_CLASS (klass);
object_class->finalize = gtk_gesture_swipe_finalize;
event_controller_class->filter_event = gtk_gesture_swipe_filter_event;
gesture_class->update = gtk_gesture_swipe_update;
gesture_class->end = gtk_gesture_swipe_end;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment