40 lines
1.6 KiB
Diff
40 lines
1.6 KiB
Diff
From 45498417c8405ad9ca3d8cd94940d6fb2702ec43 Mon Sep 17 00:00:00 2001
|
|
From: Matthias Clasen <mclasen@redhat.com>
|
|
Date: Fri, 12 Nov 2010 19:19:48 -0500
|
|
Subject: [PATCH] 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);
|
|
|
|
--
|
|
1.7.3.2
|
|
|