patches/gnome-desktop-05-randr-xerror.diff
author yippi
Thu, 31 May 2012 20:16:52 +0000
changeset 22481 1ff6784d9b6f
parent 17683 b4b88b042273
permissions -rw-r--r--
2012-05-31 Brian Cameron <[email protected]> * base-specs/shared-mime-info.spec: Bump to 1.0. * base-specs/nautilus.spec, base-specs/pulseaudio.spec, base-specs/gnome-settings-daemon.spec, specs/SUNWdconf.spec: Add patch comments. * base-specs/gnome-panel.spec: Add --disable-telepathy-glib so it does not build with this module we do not deliver.

diff -ruN gnome-desktop-2.29.92.orig/libgnome-desktop/gnome-rr.c gnome-desktop-2.29.92/libgnome-desktop/gnome-rr.c
--- gnome-desktop-2.29.92.orig/libgnome-desktop/gnome-rr.c	2010-03-11 22:09:56.932337306 +0000
+++ gnome-desktop-2.29.92/libgnome-desktop/gnome-rr.c	2010-03-11 22:11:46.392023217 +0000
@@ -740,12 +740,25 @@
 			  int       mm_width,
 			  int       mm_height)
 {
+
+    gint errcode = 0;
     g_return_if_fail (screen != NULL);
+    /* As a temporary fix to work around an issue in X where this call is
+     * succeeding yet still generating an XError, we will trap any such error,
+     * and write out a warning - better than crashing g-s-d.
+     */
+    gdk_error_trap_push();
 
 #ifdef HAVE_RANDR
     XRRSetScreenSize (screen->xdisplay, screen->xroot,
 		      width, height, mm_width, mm_height);
 #endif
+
+    gdk_flush (); /* Get XErrors now, if any */
+
+    if ( (errcode = gdk_error_trap_pop()) != 0 ) {
+        g_warning( G_STRLOC ": XRRSetScreenSize generated an XError: %d", errcode );
+    }
 }
 
 void