diff --git a/gtk/gtkgesture.c b/gtk/gtkgesture.c index e1f03d8dd9..30d944a76c 100644 --- a/gtk/gtkgesture.c +++ b/gtk/gtkgesture.c @@ -318,7 +318,7 @@ _update_widget_coordinates (GtkGesture *gesture, gdk_event_get_coords (data->event, &event_x, &event_y); window = data->event->any.window; - while (window != event_widget_window) + while (window && window != event_widget_window) { gdk_window_get_position (window, &wx, &wy); event_x += wx; @@ -326,6 +326,9 @@ _update_widget_coordinates (GtkGesture *gesture, window = gdk_window_get_effective_parent (window); } + if (!window) + return; + if (!gtk_widget_get_has_window (event_widget)) { gtk_widget_get_allocation (event_widget, &allocation);