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
This commit is contained in:
Carlos Garnacho 2020-06-26 17:35:05 +02:00
parent 3f55bfe2cb
commit b81bbde7c8

View File

@ -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