[gtk+/gtk-style-context] Fix a crash in gnome-terminal when using a compositor



commit 6633e3d5506b67655f66996d616d60257492cea5
Author: Matthias Clasen <mclasen redhat com>
Date:   Fri Nov 12 19:19:48 2010 -0500

    Fix a crash in gnome-terminal when using a compositor
    
    In this case, gnome-terminal sets an RGBA visual on its window,
    and we need to be careful when creating the icon pixmap, to create
    the pixmap with the same depth as the visual, or we risk a BadMatch
    from XRenderCreatePicture deep inside cairo.

 gdk/x11/gdkwindow-x11.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)
---
diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c
index 9f54ddc..88d8510 100644
--- a/gdk/x11/gdkwindow-x11.c
+++ b/gdk/x11/gdkwindow-x11.c
@@ -278,14 +278,16 @@ gdk_x11_window_create_pixmap_surface (GdkWindow *window,
 {
   cairo_surface_t *surface;
   Pixmap pixmap;
+  GdkVisual *visual;
 
+  visual = gdk_window_get_visual (window);
   pixmap = XCreatePixmap (GDK_WINDOW_XDISPLAY (window),
                           GDK_WINDOW_XID (window),
                           width, height,
-                          DefaultDepthOfScreen (GDK_SCREEN_XSCREEN (GDK_WINDOW_SCREEN (window))));
+                          gdk_visual_get_depth (visual));
   surface = cairo_xlib_surface_create (GDK_WINDOW_XDISPLAY (window),
                                        pixmap,
-                                       GDK_VISUAL_XVISUAL (gdk_window_get_visual (window)),
+                                       GDK_VISUAL_XVISUAL (visual),
                                        width, height);
   attach_free_pixmap_handler (surface, GDK_WINDOW_DISPLAY (window), pixmap);
 



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