aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJan Djärv2007-09-17 08:07:28 +0000
committerJan Djärv2007-09-17 08:07:28 +0000
commit879ffad91329a32d64bcbf00eb98eb23173d1199 (patch)
treeb98a48a5dd3ae81b9c0809d0ea6245d8755c7671 /src
parent3d1634c64adf1e62d51e050e3300e682d2e20790 (diff)
downloademacs-879ffad91329a32d64bcbf00eb98eb23173d1199.tar.gz
emacs-879ffad91329a32d64bcbf00eb98eb23173d1199.zip
(gdpy_def): New variable.
(xg_initialize): Initialize gdpy_def. (xg_display_close): If no other display exists, set gdpy_def to a new connection.
Diffstat (limited to 'src')
-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 d77539d151c..4ad6b4b7264 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,10 @@
12007-09-17 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
2
3 * gtkutil.c (gdpy_def): New variable.
4 (xg_initialize): Initialize gdpy_def.
5 (xg_display_close): If no other display exists, set gdpy_def to a
6 new connection.
7
12007-09-16 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> 82007-09-16 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
2 9
3 * gtkutil.c (xg_get_image_for_pixmap): Always create a GdkPixbuf 10 * gtkutil.c (xg_get_image_for_pixmap): Always create a GdkPixbuf
diff --git a/src/gtkutil.c b/src/gtkutil.c
index b37620caa9c..81ef09b7ec4 100644
--- a/src/gtkutil.c
+++ b/src/gtkutil.c
@@ -51,6 +51,13 @@ Boston, MA 02110-1301, USA. */
51 51
52#ifdef HAVE_GTK_MULTIDISPLAY 52#ifdef HAVE_GTK_MULTIDISPLAY
53 53
54/* Gtk does not work well without any display open. Emacs may close
55 all its displays. In that case, keep a display around just for
56 the purpose of having one. */
57
58static GdkDisplay *gdpy_def;
59
60
54/* Return the GdkDisplay that corresponds to the X display DPY. */ 61/* Return the GdkDisplay that corresponds to the X display DPY. */
55 62
56static GdkDisplay * 63static GdkDisplay *
@@ -147,9 +154,15 @@ xg_display_close (Display *dpy)
147 break; 154 break;
148 } 155 }
149 156
150 if (! new_dpy) return; /* Emacs will exit anyway. */ 157 if (new_dpy)
158 gdpy_new = gdk_x11_lookup_xdisplay (new_dpy);
159 else
160 {
161 if (!gdpy_def)
162 gdpy_def = gdk_display_open (gdk_display_get_name (gdpy));
163 gdpy_new = gdpy_def;
164 }
151 165
152 gdpy_new = gdk_x11_lookup_xdisplay (new_dpy);
153 gdk_display_manager_set_default_display (gdk_display_manager_get (), 166 gdk_display_manager_set_default_display (gdk_display_manager_get (),
154 gdpy_new); 167 gdpy_new);
155 } 168 }
@@ -4091,6 +4104,8 @@ xg_initialize ()
4091 we keep it permanently linked in. */ 4104 we keep it permanently linked in. */
4092 XftInit (0); 4105 XftInit (0);
4093#endif 4106#endif
4107
4108 gdpy_def = NULL;
4094 xg_ignore_gtk_scrollbar = 0; 4109 xg_ignore_gtk_scrollbar = 0;
4095 xg_detached_menus = 0; 4110 xg_detached_menus = 0;
4096 xg_menu_cb_list.prev = xg_menu_cb_list.next = 4111 xg_menu_cb_list.prev = xg_menu_cb_list.next =