[gtk/wip/carlosg/sequence-state-fixups: 39/40] gtkswitch: Don't be eager in accepting the gesture



commit b81bbde7c85cb74177e16dac510cb11931fb152c
Author: Carlos Garnacho <carlosg gnome org>
Date:   Fri Jun 26 17:35:05 2020 +0200

    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(-)
---
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


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]