diff options
author | Matthias Clasen <mclasen@redhat.com> | 2022-09-09 14:56:33 +0000 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2022-09-09 14:56:33 +0000 |
commit | de94f3d97f346a76a92697710453e42039e8058a (patch) | |
tree | 0867afdeb16cad6d27de6825ac06e01095d29ee8 | |
parent | 066884aed16aec20cfdc1b5bd83ca371dfc27a02 (diff) | |
parent | 982b4ff3b22aee04e5f91c04e95a6c6b9d8b66e2 (diff) | |
download | gtk+-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.c | 10 |
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); } |