[gtk3] fix a gnome-terminal problem

Matthias Clasen mclasen at fedoraproject.org
Sat Nov 13 00:25:59 UTC 2010


commit 87b48380318aa09a8f2a9a77352413c32ac2a48b
Author: Matthias Clasen <mclasen at redhat.com>
Date:   Fri Nov 12 19:25:12 2010 -0500

    fix a gnome-terminal problem

 ...-in-gnome-terminal-when-using-a-composito.patch |   39 ++++++++++++++++++++
 gtk3.spec                                          |    9 ++++-
 2 files changed, 47 insertions(+), 1 deletions(-)
---
diff --git a/0001-Fix-a-crash-in-gnome-terminal-when-using-a-composito.patch b/0001-Fix-a-crash-in-gnome-terminal-when-using-a-composito.patch
new file mode 100644
index 0000000..9ed807b
--- /dev/null
+++ b/0001-Fix-a-crash-in-gnome-terminal-when-using-a-composito.patch
@@ -0,0 +1,39 @@
+From 45498417c8405ad9ca3d8cd94940d6fb2702ec43 Mon Sep 17 00:00:00 2001
+From: Matthias Clasen <mclasen at 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
+
diff --git a/gtk3.spec b/gtk3.spec
index 8348c1a..86922a2 100644
--- a/gtk3.spec
+++ b/gtk3.spec
@@ -11,7 +11,7 @@
 Summary: The GIMP ToolKit (GTK+), a library for creating GUIs for X
 Name: gtk3
 Version: 2.91.4
-Release: 1%{?dist}
+Release: 2%{?dist}
 License: LGPLv2+
 Group: System Environment/Libraries
 URL: http://www.gtk.org
@@ -25,6 +25,9 @@ BuildRequires: gnome-common autoconf automake intltool gettext
 
 Patch2: 0001-New-tooltip-style.patch
 
+# upstream fix
+Patch3: 0001-Fix-a-crash-in-gnome-terminal-when-using-a-composito.patch
+
 BuildRequires: atk-devel >= %{atk_version}
 BuildRequires: glib2-devel >= %{glib2_version}
 BuildRequires: cairo-devel >= %{cairo_version}
@@ -111,6 +114,7 @@ widget toolkit.
 %setup -q -n gtk+-%{version}
 %patch0 -p1 -b .system-python
 %patch2 -p1 -b .fresh-tooltips
+%patch3 -p1 -b .terminal-crash
 
 %build
 
@@ -245,6 +249,9 @@ gtk-query-immodules-3.0-%{__isa_bits} --update-cache
 %{_mandir}/man1/gtk-builder-convert-3.0.1.gz
 
 %changelog
+* Fri Nov 12 2010 Matthias Clasen <mclasen at redhat.com> 2.91.4-2
+- Make gnome-terminal work again
+
 * Thu Nov 11 2010 Matthias Clasen <mclasen at redhat.com> 2.91.4-1
 - Update to 2.91.4
 


More information about the scm-commits mailing list