diff options
author | Matthias Clasen <mclasen@redhat.com> | 2019-05-02 19:09:17 +0000 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2019-05-02 19:15:37 +0000 |
commit | e07f3d6e641defa6918d5eb2dc725b4fc38b0139 (patch) | |
tree | 9df09fb2f025f1fc3252f215f82292fbf1d373bc | |
parent | b844778b5b5e0e113c361e42ac98debeb40da5b7 (diff) | |
download | gtk+-event-controller-responsive.tar.gz |
spin button: Listen for ::cancel on gesturesevent-controller-responsive
Otherwise, we keep spinning when we should stop.
Closes: https://gitlab.gnome.org/GNOME/gtk/issues/1861
-rw-r--r-- | gtk/gtkspinbutton.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gtk/gtkspinbutton.c b/gtk/gtkspinbutton.c index b273b2e30d..b038feb444 100644 --- a/gtk/gtkspinbutton.c +++ b/gtk/gtkspinbutton.c @@ -810,6 +810,14 @@ button_released_cb (GtkGestureMultiPress *gesture, } static void +button_cancel_cb (GtkGesture *gesture, + GdkEventSequence *sequence, + GtkSpinButton *spin_button) +{ + gtk_spin_button_stop_spinning (spin_button); +} + +static void key_controller_key_released (GtkEventControllerKey *key, guint keyval, guint keycode, @@ -886,6 +894,7 @@ gtk_spin_button_init (GtkSpinButton *spin_button) GTK_PHASE_CAPTURE); g_signal_connect (gesture, "pressed", G_CALLBACK (button_pressed_cb), spin_button); g_signal_connect (gesture, "released", G_CALLBACK (button_released_cb), spin_button); + g_signal_connect (gesture, "cancel", G_CALLBACK (button_cancel_cb), spin_button); gtk_widget_add_controller (GTK_WIDGET (priv->down_button), GTK_EVENT_CONTROLLER (gesture)); priv->up_button = gtk_button_new (); @@ -902,6 +911,7 @@ gtk_spin_button_init (GtkSpinButton *spin_button) GTK_PHASE_CAPTURE); g_signal_connect (gesture, "pressed", G_CALLBACK (button_pressed_cb), spin_button); g_signal_connect (gesture, "released", G_CALLBACK (button_released_cb), spin_button); + g_signal_connect (gesture, "cancel", G_CALLBACK (button_cancel_cb), spin_button); gtk_widget_add_controller (GTK_WIDGET (priv->up_button), GTK_EVENT_CONTROLLER (gesture)); gtk_spin_button_set_adjustment (spin_button, NULL); |