rpms/xchat/devel xchat-2.8.4-shm-pixmaps.patch, NONE, 1.1 xchat.spec, 1.83, 1.84

Adam Jackson (ajax) fedora-extras-commits at redhat.com
Thu Dec 20 23:42:05 UTC 2007


Author: ajax

Update of /cvs/pkgs/rpms/xchat/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv27655

Modified Files:
	xchat.spec 
Added Files:
	xchat-2.8.4-shm-pixmaps.patch 
Log Message:
* Thu Dec 20 2007 Adam Jackson <ajax at redhat.com> 1:2.8.4-9
- xchat-2.8.4-shm-pixmaps.patch: MIT-SHM pixmaps are optional, and when
  using EXA they are not available.  Check that the server supports them
  before trying to create them so we don't crash.


xchat-2.8.4-shm-pixmaps.patch:

--- NEW FILE xchat-2.8.4-shm-pixmaps.patch ---
diff -up xchat-2.8.4/src/fe-gtk/xtext.c.jx xchat-2.8.4/src/fe-gtk/xtext.c
--- xchat-2.8.4/src/fe-gtk/xtext.c.jx	2007-06-08 05:57:07.000000000 -0400
+++ xchat-2.8.4/src/fe-gtk/xtext.c	2007-12-20 17:12:52.000000000 -0500
@@ -3537,6 +3537,22 @@ get_image (GtkXText *xtext, Display *xdi
 
 #endif
 
+#ifdef USE_SHM
+static int
+have_shm_pixmaps(Display *dpy)
+{
+    static int checked = 0, major, minor;
+    Bool have = FALSE;
+
+    if (!checked) {
+	XShmQueryVersion(dpy, &major, &minor, &have);
+	checked = 1;
+    }
+
+    return have;
+}
+#endif
+
 static GdkPixmap *
 shade_pixmap (GtkXText * xtext, Pixmap p, int x, int y, int w, int h)
 {
@@ -3549,6 +3565,11 @@ shade_pixmap (GtkXText * xtext, Pixmap p
 	GC tgc;
 	Display *xdisplay = GDK_WINDOW_XDISPLAY (xtext->draw_buf);
 
+#ifdef USE_SHM
+	int shm_pixmaps;
+	shm_pixmaps = have_shm_pixmaps(xdisplay);
+#endif
+
 	XGetGeometry (xdisplay, p, &root, &dummy, &dummy, &width, &height,
 					  &dummy, &depth);
 
@@ -3602,7 +3623,7 @@ shade_pixmap (GtkXText * xtext, Pixmap p
 	else
 	{
 #ifdef USE_SHM
-		if (xtext->shm)
+		if (xtext->shm && shm_pixmaps)
 		{
 #if (GTK_MAJOR_VERSION == 2) && (GTK_MINOR_VERSION == 0)
 			shaded_pix = gdk_pixmap_foreign_new (
@@ -3620,7 +3641,7 @@ shade_pixmap (GtkXText * xtext, Pixmap p
 	}
 
 #ifdef USE_SHM
-	if (!xtext->shm)
+	if (!xtext->shm || !shm_pixmaps)
 #endif
 		XPutImage (xdisplay, GDK_WINDOW_XWINDOW (shaded_pix),
 					  GDK_GC_XGC (xtext->fgc), ximg, 0, 0, 0, 0, w, h);


Index: xchat.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xchat/devel/xchat.spec,v
retrieving revision 1.83
retrieving revision 1.84
diff -u -r1.83 -r1.84
--- xchat.spec	18 Dec 2007 23:41:45 -0000	1.83
+++ xchat.spec	20 Dec 2007 23:41:24 -0000	1.84
@@ -3,7 +3,7 @@
 Summary:   A popular and easy to use graphical IRC (chat) client
 Name:      xchat
 Version:   2.8.4
-Release:   8%{?dist}
+Release:   9%{?dist}
 Epoch:     1
 Group:     Applications/Internet
 License:   GPLv2+
@@ -26,6 +26,7 @@
 Patch19: xchat-2.0.2-freenode.patch
 # see #241923
 Patch35: xchat-2.8.4-disable-tray-icon-by-default.patch
+Patch40: xchat-2.8.4-shm-pixmaps.patch
 
 BuildRequires: perl perl(ExtUtils::Embed) python-devel openssl-devel pkgconfig, tcl-devel
 BuildRequires: GConf2-devel
@@ -72,6 +73,7 @@
 %patch12 -p0 -b .use-sysconf-to-detect-cpus
 %patch19 -p0 -b .freenode
 %patch35 -p1 -b .tray-icon
+%patch40 -p1 -b .shm-pixmaps
 
 %build
 # Remove CVS files from source dirs so they're not installed into doc dirs.
@@ -160,6 +162,11 @@
 %{_libdir}/xchat/plugins/tcl.so
 
 %changelog
+* Thu Dec 20 2007 Adam Jackson <ajax at redhat.com> 1:2.8.4-9
+- xchat-2.8.4-shm-pixmaps.patch: MIT-SHM pixmaps are optional, and when
+  using EXA they are not available.  Check that the server supports them
+  before trying to create them so we don't crash.
+
 * Wed Dec 19 2007 Kevin Kofler <Kevin at tigcc.ticalc.org> - 1:2.8.4-8
 - apply xc284-fix-scrollbfdleak.diff from upstream
 




More information about the fedora-extras-commits mailing list