From b81bbde7c85cb74177e16dac510cb11931fb152c Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Fri, 26 Jun 2020 17:35:05 +0200 Subject: gtkswitch: Don't be eager in accepting the gesture The gesture should be accepted whenever it triggers uncancellable actions in the widget. This means it should be accepted if the click does result in toggling the switch. This leaves the pan gesture room to handle dragging the handle. Fixes: https://gitlab.gnome.org/GNOME/gtk/-/issues/2895 --- gtk/gtkswitch.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'gtk/gtkswitch.c') diff --git a/gtk/gtkswitch.c b/gtk/gtkswitch.c index 99ac45f941..e720ac3030 100644 --- a/gtk/gtkswitch.c +++ b/gtk/gtkswitch.c @@ -205,8 +205,6 @@ gtk_switch_click_gesture_pressed (GtkGestureClick *gesture, if (!gtk_widget_compute_bounds (GTK_WIDGET (self), GTK_WIDGET (self), &switch_bounds)) return; - gtk_gesture_set_state (GTK_GESTURE (gesture), GTK_EVENT_SEQUENCE_CLAIMED); - /* If the press didn't happen in the draggable handle, * cancel the pan gesture right away */ @@ -228,7 +226,10 @@ gtk_switch_click_gesture_released (GtkGestureClick *gesture, if (gtk_widget_contains (GTK_WIDGET (self), x, y) && gtk_gesture_handles_sequence (GTK_GESTURE (gesture), sequence)) - gtk_switch_begin_toggle_animation (self); + { + gtk_gesture_set_state (GTK_GESTURE (gesture), GTK_EVENT_SEQUENCE_CLAIMED); + gtk_switch_begin_toggle_animation (self); + } } static void -- cgit v1.2.1