Stijn Hoop)
- Add patches for GNOME bugs
445447 - Application-induced window raise fails when raise_on_click off
(rhbz 526045)
530702 - compiz doesn't start if metacity compositor is enabled (rhbz
537791)
559816 - Doesn't update keybindings being disabled/cleared (rhbz 532282)
567528 - Cannot raise windows from applications in Tcl/Tk and Java (rhbz
503522)
577576 - Failed to read saved session file warning on new sessions (rhbz
493245)
598231 - When Chromium rings the bell, metacity quits(rhbz 532282)
598995 - Don't focus ancestor window on a different workspace (rhbz 237158)
599097 - For mouse and sloppy focus, return to "mouse mode" on motion (rhbz
530261)
599248 - Add no_focus_windows preference to list windows that shouldn't be
focused (rhbz 530262)
599261 - Add a new_windows_always_on_top preference (rhbz 530263)
599262 - Add XFCE Terminal as a terminal
604319 - XIOError unknown display (rhbz 537845)
59 lines
2.0 KiB
Diff
59 lines
2.0 KiB
Diff
From 7c30ba2d034050e8e7d1776ea7541495bdf898b3 Mon Sep 17 00:00:00 2001
|
|
From: Owen W. Taylor <otaylor@fishsoup.net>
|
|
Date: Fri, 20 Nov 2009 10:42:07 -0500
|
|
Subject: [PATCH] Handle XError and XIOError for unknown displays
|
|
|
|
The atk-bridge GTK+ module opens its own display; if we get an
|
|
XIOError on that display, we shouldn't abort with a meta_bug()
|
|
but just exit normally. Also fix a segfault if we got an XError
|
|
for that display.
|
|
---
|
|
src/core/errors.c | 13 +++++--------
|
|
1 files changed, 5 insertions(+), 8 deletions(-)
|
|
|
|
diff --git a/src/core/errors.c b/src/core/errors.c
|
|
index 8de4608..59f9c71 100644
|
|
--- a/src/core/errors.c
|
|
+++ b/src/core/errors.c
|
|
@@ -222,10 +222,10 @@ x_error_handler (Display *xdisplay,
|
|
|
|
display = meta_display_for_x_display (xdisplay);
|
|
|
|
- /* Display can be NULL here because the compositing manager
|
|
- * has its own Display, but Xlib only has one global error handler
|
|
+ /* Display can be NULL here Xlib only has one global error handler; and
|
|
+ * there might be other displays open in the process.
|
|
*/
|
|
- if (display->error_traps > 0)
|
|
+ if (display && display->error_traps > 0)
|
|
{
|
|
/* we're in an error trap, chain to the trap handler
|
|
* saved from GDK
|
|
@@ -264,21 +264,18 @@ x_io_error_handler (Display *xdisplay)
|
|
|
|
display = meta_display_for_x_display (xdisplay);
|
|
|
|
- if (display == NULL)
|
|
- meta_bug ("IO error received for unknown display?\n");
|
|
-
|
|
if (errno == EPIPE)
|
|
{
|
|
meta_warning (_("Lost connection to the display '%s';\n"
|
|
"most likely the X server was shut down or you killed/destroyed\n"
|
|
"the window manager.\n"),
|
|
- display->name);
|
|
+ display ? display->name : DisplayString (xdisplay));
|
|
}
|
|
else
|
|
{
|
|
meta_warning (_("Fatal IO error %d (%s) on display '%s'.\n"),
|
|
errno, g_strerror (errno),
|
|
- display->name);
|
|
+ display ? display->name : DisplayString (xdisplay));
|
|
}
|
|
|
|
/* Xlib would force an exit anyhow */
|
|
--
|
|
1.6.5.2
|
|
|