(Fx_create_frame): Set xlwmenu_default_font.
authorRichard M. Stallman <rms@gnu.org>
Sat, 29 Oct 1994 09:47:12 +0000 (09:47 +0000)
committerRichard M. Stallman <rms@gnu.org>
Sat, 29 Oct 1994 09:47:12 +0000 (09:47 +0000)
[USE_X_TOOLKIT] (x_window): Use XtAppCreateShell.
(Xt_app_shell, Xt_app_con): Variables deleted.

(Fx_close_connection) [USE_X_TOOLKIT]: Call XtCloseDisplay.

src/xfns.c

index 8fea14d..9e508dc 100644 (file)
@@ -78,13 +78,8 @@ extern void _XEditResCheckMessages ();
    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 @@ x_window (f, window_prompting, minibuffer_only)
   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 @@ This function is an internal primitive--use `make-frame' instead.")
                         "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 @@ If DISPLAY is nil, that stands for the selected frame's display.")
     }
   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;