[gtk/gtk-3-24: 1/2] x11/dnd: Ignore XErrors from the COW




commit 39db78470452cf0b1a7d1ee196de3f20eea85d33
Author: Olivier Fourdan <ofourdan redhat com>
Date:   Mon Mar 22 15:19:33 2021 +0100

    x11/dnd: Ignore XErrors from the COW
    
    The DnD code for X11 adds the composite overlay window (aka COW) to the
    cache.
    
    Yet the X11 requests to get and release the COW may trigger XErrors that
    we ought to ignore otherwise the client will abort.
    
    Fixes: #3715

 gdk/x11/gdkdnd-x11.c | 2 ++
 1 file changed, 2 insertions(+)
---
diff --git a/gdk/x11/gdkdnd-x11.c b/gdk/x11/gdkdnd-x11.c
index e07fa10325..113d0a891c 100644
--- a/gdk/x11/gdkdnd-x11.c
+++ b/gdk/x11/gdkdnd-x11.c
@@ -634,12 +634,14 @@ gdk_window_cache_new (GdkScreen *screen)
    */
   if (gdk_screen_is_composited (screen))
     {
+      gdk_x11_display_error_trap_push (GDK_X11_SCREEN (screen)->display);
       cow = XCompositeGetOverlayWindow (xdisplay, GDK_WINDOW_XID (root_window));
       gdk_window_cache_add (result, cow, 0, 0, 
                            gdk_x11_screen_get_width (screen) * GDK_X11_SCREEN(screen)->window_scale, 
                            gdk_x11_screen_get_height (screen) * GDK_X11_SCREEN(screen)->window_scale, 
                            TRUE);
       XCompositeReleaseOverlayWindow (xdisplay, GDK_WINDOW_XID (root_window));
+      gdk_x11_display_error_trap_pop_ignored (GDK_X11_SCREEN (screen)->display);
     }
 #endif
 


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