[gtk+] Protect against X errors when clearing the DND cache



commit 325cbef27edd58b801509a2016aee6ab6e49d2f1
Author: Matthias Clasen <mclasen redhat com>
Date:   Tue Feb 23 12:32:36 2010 -0500

    Protect against X errors when clearing the DND cache
    
    This was reported as a problem in bug 609952.

 gdk/x11/gdkdnd-x11.c |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)
---
diff --git a/gdk/x11/gdkdnd-x11.c b/gdk/x11/gdkdnd-x11.c
index 2da9567..824f96d 100644
--- a/gdk/x11/gdkdnd-x11.c
+++ b/gdk/x11/gdkdnd-x11.c
@@ -573,15 +573,21 @@ static void
 gdk_window_cache_destroy (GdkWindowCache *cache)
 {
   GdkWindow *root_window = gdk_screen_get_root_window (cache->screen);
-  
-  XSelectInput (GDK_WINDOW_XDISPLAY (root_window), 
+
+  XSelectInput (GDK_WINDOW_XDISPLAY (root_window),
 		GDK_WINDOW_XWINDOW (root_window),
 		cache->old_event_mask);
   gdk_window_remove_filter (root_window, gdk_window_cache_filter, cache);
   gdk_window_remove_filter (NULL, gdk_window_cache_shape_filter, cache);
 
-  g_list_foreach (cache->children, (GFunc)free_cache_child, 
+  gdk_error_trap_push ();
+
+  g_list_foreach (cache->children, (GFunc)free_cache_child,
       gdk_screen_get_display (cache->screen));
+
+  gdk_flush ();
+  gdk_error_trap_pop ();
+
   g_list_free (cache->children);
   g_hash_table_destroy (cache->child_hash);
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]