aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Djärv <[email protected]>2007-09-17 08:07:28 +0000
committerJan Djärv <[email protected]>2007-09-17 08:07:28 +0000
commit879ffad91329a32d64bcbf00eb98eb23173d1199 (patch)
treeb98a48a5dd3ae81b9c0809d0ea6245d8755c7671
parent3d1634c64adf1e62d51e050e3300e682d2e20790 (diff)
(gdpy_def): New variable.
(xg_initialize): Initialize gdpy_def. (xg_display_close): If no other display exists, set gdpy_def to a new connection.
-rw-r--r--src/ChangeLog7
-rw-r--r--src/gtkutil.c19
2 files changed, 24 insertions, 2 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index d77539d151..4ad6b4b726 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,10 @@
+2007-09-17 Jan Dj,Ad(Brv <[email protected]>
+
+ * gtkutil.c (gdpy_def): New variable.
+ (xg_initialize): Initialize gdpy_def.
+ (xg_display_close): If no other display exists, set gdpy_def to a
+ new connection.
+
2007-09-16 Jan Dj,Ad(Brv <[email protected]>
* gtkutil.c (xg_get_image_for_pixmap): Always create a GdkPixbuf
diff --git a/src/gtkutil.c b/src/gtkutil.c
index b37620caa9..81ef09b7ec 100644
--- a/src/gtkutil.c
+++ b/src/gtkutil.c
@@ -51,6 +51,13 @@ Boston, MA 02110-1301, USA. */
#ifdef HAVE_GTK_MULTIDISPLAY
+/* Gtk does not work well without any display open. Emacs may close
+ all its displays. In that case, keep a display around just for
+ the purpose of having one. */
+
+static GdkDisplay *gdpy_def;
+
+
/* Return the GdkDisplay that corresponds to the X display DPY. */
static GdkDisplay *
@@ -147,9 +154,15 @@ xg_display_close (Display *dpy)
break;
}
- if (! new_dpy) return; /* Emacs will exit anyway. */
+ if (new_dpy)
+ gdpy_new = gdk_x11_lookup_xdisplay (new_dpy);
+ else
+ {
+ if (!gdpy_def)
+ gdpy_def = gdk_display_open (gdk_display_get_name (gdpy));
+ gdpy_new = gdpy_def;
+ }
- gdpy_new = gdk_x11_lookup_xdisplay (new_dpy);
gdk_display_manager_set_default_display (gdk_display_manager_get (),
gdpy_new);
}
@@ -4091,6 +4104,8 @@ xg_initialize ()
we keep it permanently linked in. */
XftInit (0);
#endif
+
+ gdpy_def = NULL;
xg_ignore_gtk_scrollbar = 0;
xg_detached_menus = 0;
xg_menu_cb_list.prev = xg_menu_cb_list.next =