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); }