From: Maxim Zakharov Date: Tue, 30 Aug 2022 05:45:52 +0000 (+1000) Subject: gtk/gtktooltip.c: check result of event position get operation X-Git-Tag: archive/raspbian/4.8.3+ds-2+rpi1~3^2~20^2~2^2~20^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=982b4ff3b22aee04e5f91c04e95a6c6b9d8b66e2;p=gtk4.git gtk/gtktooltip.c: check result of event position get operation Do not perform coordinates transformation when gdk_event_get_position() returns FALSE as it returns NaNs in that case and these coordinates are not used anyway in further processing (closes #5134). --- 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); }