From ccd6e1ba470919a886e7faa15f9e5ea3d8c23f29 Mon Sep 17 00:00:00 2001 From: Marek Kasik Date: Wed, 18 Dec 2013 12:23:28 +0100 Subject: [PATCH] gdkwindow: Don't add the same window to "update_windows" twice This prevents passing of such window to another GMainLoop. https://bugzilla.gnome.org/show_bug.cgi?id=711552 --- gdk/gdkwindow.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c index 424b82423d..d1216b3f82 100644 --- a/gdk/gdkwindow.c +++ b/gdk/gdkwindow.c @@ -3227,6 +3227,15 @@ gdk_window_add_update_window (GdkWindow *window) GSList *prev = NULL; gboolean has_ancestor_in_list = FALSE; + /* Check whether "window" is already in "update_windows" list. + * It could be added during execution of gtk_widget_destroy() when + * setting focus widget to NULL and redrawing old focus widget. + * See bug 711552. + */ + tmp = g_slist_find (update_windows, window); + if (tmp != NULL) + return; + for (tmp = update_windows; tmp; tmp = tmp->next) { GdkWindow *parent = window->parent;