From a651a0ce6977e9235fcc510b60ea6677c443ea48 Mon Sep 17 00:00:00 2001 From: Alexander Mikhaylenko Date: Thu, 12 Nov 2020 15:26:36 +0500 Subject: [PATCH 1/2] gestureclick: Only emit release for the same sequence Avoid spurious releases when touching the same widget with another finger. --- gtk/gtkgestureclick.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gtk/gtkgestureclick.c b/gtk/gtkgestureclick.c index 98e8b7dd08f..1af276bd159 100644 --- a/gtk/gtkgestureclick.c +++ b/gtk/gtkgestureclick.c @@ -272,7 +272,7 @@ gtk_gesture_click_end (GtkGesture *gesture, interpreted = gtk_gesture_get_point (gesture, current, &x, &y); state = gtk_gesture_get_sequence_state (gesture, current); - if (state != GTK_EVENT_SEQUENCE_DENIED && interpreted) + if (current == sequence && state != GTK_EVENT_SEQUENCE_DENIED && interpreted) g_signal_emit (gesture, signals[RELEASED], 0, priv->n_release, x, y); priv->n_release = 0; -- GitLab From 49613dca8efcae2bffdfdebd3e76735b49fa6de4 Mon Sep 17 00:00:00 2001 From: Alexander Mikhaylenko Date: Thu, 12 Nov 2020 15:27:16 +0500 Subject: [PATCH 2/2] button: Don't make the gesture exclusive With the last commit, pressing the same button with multiple fingers doesn't cause extra emissions, so we can remove exclusive and allow pressing multiple buttons at once on touch. --- gtk/gtkbutton.c | 1 - 1 file changed, 1 deletion(-) diff --git a/gtk/gtkbutton.c b/gtk/gtkbutton.c index 059853106a5..da3186f366a 100644 --- a/gtk/gtkbutton.c +++ b/gtk/gtkbutton.c @@ -405,7 +405,6 @@ gtk_button_init (GtkButton *button) priv->gesture = gtk_gesture_click_new (); gtk_gesture_single_set_touch_only (GTK_GESTURE_SINGLE (priv->gesture), FALSE); - gtk_gesture_single_set_exclusive (GTK_GESTURE_SINGLE (priv->gesture), TRUE); gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (priv->gesture), GDK_BUTTON_PRIMARY); g_signal_connect (priv->gesture, "pressed", G_CALLBACK (click_pressed_cb), button); g_signal_connect (priv->gesture, "released", G_CALLBACK (click_released_cb), button); -- GitLab