changeset 9742:fe7653791d28

(Fx_create_frame): Set xlwmenu_default_font. [USE_X_TOOLKIT] (x_window): Use XtAppCreateShell. (Xt_app_shell, Xt_app_con): Variables deleted. (Fx_close_connection) [USE_X_TOOLKIT]: Call XtCloseDisplay.
author Richard M. Stallman <rms@gnu.org>
date Sat, 29 Oct 1994 09:47:12 +0000
parents bd9d06e542c6
children 6a97ed1cc733
files src/xfns.c
diffstat 1 files changed, 14 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/src/xfns.c	Sat Oct 29 09:43:07 1994 +0000
+++ b/src/xfns.c	Sat Oct 29 09:47:12 1994 +0000
@@ -78,13 +78,8 @@
    Library.  */
 extern LWLIB_ID widget_id_tick;
 
-/* The one and only application context associated with the connection
-   to the one and only X display that Emacs uses.  */
-XtAppContext Xt_app_con;
-
-/* The one and only application shell.  Emacs screens are popup shells of this
-   application.  */
-Widget Xt_app_shell;
+/* This is part of a kludge--see lwlib/xlwmenu.c.  */
+XFontStruct *xlwmenu_default_font;
 
 extern void free_frame_menubar ();
 #endif /* USE_X_TOOLKIT */
@@ -2218,9 +2213,9 @@
   ac = 0;
   XtSetArg (al[ac], XtNallowShellResize, 1); ac++;
   XtSetArg (al[ac], XtNinput, 1); ac++;
-  shell_widget = XtCreatePopupShell ("shell",
-				     topLevelShellWidgetClass,
-				     Xt_app_shell, al, ac);
+  shell_widget = XtAppCreateShell (name, EMACS_CLASS,
+				   topLevelShellWidgetClass,
+				   FRAME_X_DISPLAY (f), al, ac);
 
   f->display.x->widget = shell_widget;
   /* maybe_set_screen_title_format (shell_widget); */
@@ -2672,6 +2667,10 @@
 			 "font", "Font", string);
   }
 
+  /* Prevent lwlib/xlwmenu.c from crashing because of a bug
+     whereby it fails to get any font.  */
+  xlwmenu_default_font = f->display.x->font;
+
   x_default_parameter (f, parms, Qborder_width, make_number (2),
 		       "borderwidth", "BorderWidth", number);
   /* This defaults to 2 in order to match xterm.  We recognize either
@@ -4417,7 +4416,12 @@
     }
   x_destroy_all_bitmaps (dpyinfo);
   XSetCloseDownMode (dpyinfo->display, DestroyAll);
+
+#ifdef USE_X_TOOLKIT
+  XtCloseDisplay (dpyinfo->display);
+#else
   XCloseDisplay (dpyinfo->display);
+#endif
 
   x_delete_display (dpyinfo);
   UNBLOCK_INPUT;