diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 7 | ||||
| -rw-r--r-- | src/gtkutil.c | 19 |
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 @@ | |||
| 1 | 2007-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 | |||
| 1 | 2007-09-16 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> | 8 | 2007-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 | |||
| 58 | static 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 | ||
| 56 | static GdkDisplay * | 63 | static 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 = |