17683
|
1 |
diff -ruN gnome-desktop-2.29.92.orig/libgnome-desktop/gnome-rr.c gnome-desktop-2.29.92/libgnome-desktop/gnome-rr.c
|
|
2 |
--- gnome-desktop-2.29.92.orig/libgnome-desktop/gnome-rr.c 2010-03-11 22:09:56.932337306 +0000
|
|
3 |
+++ gnome-desktop-2.29.92/libgnome-desktop/gnome-rr.c 2010-03-11 22:11:46.392023217 +0000
|
|
4 |
@@ -740,12 +740,25 @@
|
13516
|
5 |
int mm_width,
|
|
6 |
int mm_height)
|
|
7 |
{
|
17683
|
8 |
+
|
13516
|
9 |
+ gint errcode = 0;
|
|
10 |
g_return_if_fail (screen != NULL);
|
|
11 |
+ /* As a temporary fix to work around an issue in X where this call is
|
|
12 |
+ * succeeding yet still generating an XError, we will trap any such error,
|
|
13 |
+ * and write out a warning - better than crashing g-s-d.
|
|
14 |
+ */
|
|
15 |
+ gdk_error_trap_push();
|
17683
|
16 |
|
|
17 |
#ifdef HAVE_RANDR
|
13516
|
18 |
XRRSetScreenSize (screen->xdisplay, screen->xroot,
|
|
19 |
width, height, mm_width, mm_height);
|
17683
|
20 |
#endif
|
13516
|
21 |
+
|
|
22 |
+ gdk_flush (); /* Get XErrors now, if any */
|
|
23 |
+
|
|
24 |
+ if ( (errcode = gdk_error_trap_pop()) != 0 ) {
|
|
25 |
+ g_warning( G_STRLOC ": XRRSetScreenSize generated an XError: %d", errcode );
|
|
26 |
+ }
|
|
27 |
}
|
|
28 |
|
|
29 |
void
|