summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ChangeLog5
-rw-r--r--src/xterm.c10
2 files changed, 14 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 3f0c3246c33..5a5e9ef48fd 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2008-03-11 Jan Dj$(Q)Z(Brv <jan.h.d@swipnet.se>
+
+ * xterm.c (x_connection_closed): For GTK: If this is the last
+ terminal just exit without closing the display.
+
2008-03-11 Jason Rumney <jasonr@gnu.org>
* w32font.c (w32font_full_name): Use floor to round.
diff --git a/src/xterm.c b/src/xterm.c
index 5496dbaca32..c09257c6dda 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -8110,7 +8110,7 @@ x_connection_closed (dpy, error_message)
OpenWindows in certain situations. I suspect that is a bug
in OpenWindows. I don't know how to circumvent it here. */
- if (dpyinfo)
+ if (dpyinfo && terminal_list->next_terminal != NULL)
{
#ifdef USE_X_TOOLKIT
/* If DPYINFO is null, this means we didn't open the display
@@ -8124,6 +8124,14 @@ x_connection_closed (dpy, error_message)
#endif
#ifdef USE_GTK
+ /* Due to bugs in some Gtk+ versions, just exit here if this
+ is the last display/terminal. */
+ if (terminal_list->next_terminal == NULL)
+ {
+ fprintf (stderr, "%s\n", error_msg);
+ shut_down_emacs (0, 0, Qnil);
+ exit (70);
+ }
xg_display_close (dpyinfo->display);
#endif