[gtk/matthiasc/for-master: 5/7] button: Fix an event handling gotcha
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/matthiasc/for-master: 5/7] button: Fix an event handling gotcha
- Date: Sat, 28 Mar 2020 19:06:01 +0000 (UTC)
commit e662438675b66c35d70f977e82885e9298e04a07
Author: Matthias Clasen <mclasen redhat com>
Date: Sat Mar 28 14:33:01 2020 -0400
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.
gtk/gtkbutton.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
---
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));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]