summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2022-09-09 14:56:33 +0000
committerMatthias Clasen <mclasen@redhat.com>2022-09-09 14:56:33 +0000
commitde94f3d97f346a76a92697710453e42039e8058a (patch)
tree0867afdeb16cad6d27de6825ac06e01095d29ee8
parent066884aed16aec20cfdc1b5bd83ca371dfc27a02 (diff)
parent982b4ff3b22aee04e5f91c04e95a6c6b9d8b66e2 (diff)
downloadgtk+-de94f3d97f346a76a92697710453e42039e8058a.tar.gz
Merge branch 'gtktooltip.c-optimise' into 'main'
gtk/gtktooltip.c: check result of event position get operation Closes #5134 See merge request GNOME/gtk!4996
-rw-r--r--gtk/gtktooltip.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/gtk/gtktooltip.c b/gtk/gtktooltip.c
index 9f0fa15cca..54708a14aa 100644
--- a/gtk/gtktooltip.c
+++ b/gtk/gtktooltip.c
@@ -925,16 +925,18 @@ _gtk_tooltip_handle_event (GtkWidget *target,
return;
event_type = gdk_event_get_event_type (event);
- surface = gdk_event_get_surface (event);
- gdk_event_get_position (event, &x, &y);
/* ignore synthetic motion events */
if (event_type == GDK_MOTION_NOTIFY &&
gdk_event_get_time (event) == GDK_CURRENT_TIME)
return;
- gtk_native_get_surface_transform (native, &nx, &ny);
- gtk_widget_translate_coordinates (GTK_WIDGET (native), target, x - nx, y - ny, &x, &y);
+ surface = gdk_event_get_surface (event);
+ if (gdk_event_get_position (event, &x, &y))
+ {
+ gtk_native_get_surface_transform (native, &nx, &ny);
+ gtk_widget_translate_coordinates (GTK_WIDGET (native), target, x - nx, y - ny, &x, &y);
+ }
gtk_tooltip_handle_event_internal (event_type, surface, target, x, y);
}