diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2014-06-11 17:34:23 +0200 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2014-06-11 17:36:03 +0200 |
commit | 20a59985fe365a703fdf270e15608b5debda20e2 (patch) | |
tree | 63084b63b3f2e090457900c1122abbd24a03f667 /gtk/gtkgesturesingle.c | |
parent | e7b3d8b41412ce4a6eaa4ace48f9f6f591042332 (diff) | |
download | gtk+-20a59985fe365a703fdf270e15608b5debda20e2.tar.gz |
gesturesingle: Ensure the current button stays set until after the touch/button release
This makes gtk_gesture_get_current_button() work properly on GtkGesture::end, and signals
spawn from there on subclasses.
Diffstat (limited to 'gtk/gtkgesturesingle.c')
-rw-r--r-- | gtk/gtkgesturesingle.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/gtk/gtkgesturesingle.c b/gtk/gtkgesturesingle.c index 08e5b42fd5..ac91851808 100644 --- a/gtk/gtkgesturesingle.c +++ b/gtk/gtkgesturesingle.c @@ -131,6 +131,7 @@ gtk_gesture_single_handle_event (GtkEventController *controller, GdkDevice *source_device; GdkInputSource source; guint button = 0, i; + gboolean retval; source_device = gdk_event_get_source_device (event); @@ -204,11 +205,14 @@ gtk_gesture_single_handle_event (GtkEventController *controller, priv->current_button = button; } - else if (sequence == priv->current_sequence && - (event->type == GDK_BUTTON_RELEASE || event->type == GDK_TOUCH_END)) + + retval = GTK_EVENT_CONTROLLER_CLASS (gtk_gesture_single_parent_class)->handle_event (controller, event); + + if (sequence == priv->current_sequence && + (event->type == GDK_BUTTON_RELEASE || event->type == GDK_TOUCH_END)) priv->current_button = 0; - return GTK_EVENT_CONTROLLER_CLASS (gtk_gesture_single_parent_class)->handle_event (controller, event); + return retval; } static void |