From: Matthias Clasen Date: Sat, 28 Mar 2020 18:33:01 +0000 (-0400) Subject: button: Fix an event handling gotcha X-Git-Tag: archive/raspbian/4.4.1+ds1-2+rpi1^2~18^2~19^2~17^2~2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=e662438675b66c35d70f977e82885e9298e04a07;p=gtk4.git button: Fix an event handling gotcha We no longer translate event coordinates in-place, so gdk_event_get_position() returns surface-relative coordinates, not widget-relative ones. Just use the coordinates we are given. --- diff --git a/gtk/gtkbutton.c b/gtk/gtkbutton.c index 7da11fb7d5..d633c77fe6 100644 --- a/gtk/gtkbutton.c +++ b/gtk/gtkbutton.c @@ -306,10 +306,11 @@ click_pressed_cb (GtkGestureClick *gesture, } static gboolean -touch_release_in_button (GtkButton *button) +touch_release_in_button (GtkButton *button, + double x, + double y) { GdkEvent *event; - gdouble x, y; event = gtk_get_current_event (); @@ -322,8 +323,6 @@ touch_release_in_button (GtkButton *button) return FALSE; } - gdk_event_get_position (event, &x, &y); - gdk_event_unref (event); if (gtk_widget_contains (GTK_WIDGET (button), x, y)) @@ -346,7 +345,7 @@ click_released_cb (GtkGestureClick *gesture, gtk_button_do_release (button, gtk_widget_is_sensitive (GTK_WIDGET (button)) && (priv->in_button || - touch_release_in_button (button))); + touch_release_in_button (button, x, y))); sequence = gtk_gesture_single_get_current_sequence (GTK_GESTURE_SINGLE (gesture));