]> git.eshelyaron.com Git - emacs.git/commitdiff
(Fx_create_frame): Adjust the frame's height for presence
authorGerd Moellmann <gerd@gnu.org>
Thu, 1 Mar 2001 16:39:11 +0000 (16:39 +0000)
committerGerd Moellmann <gerd@gnu.org>
Thu, 1 Mar 2001 16:39:11 +0000 (16:39 +0000)
of the tool bar before calling x_figure_window_size.

src/ChangeLog
src/xfns.c

index 6336902bde37a0ccd8d063554926f8e702d5af20..d40af06c4dddb3a40e1a1dac2197c0c87bfa905d 100644 (file)
@@ -1,5 +1,8 @@
 2001-03-01  Gerd Moellmann  <gerd@gnu.org>
 
+       * xfns.c (Fx_create_frame): Adjust the frame's height for presence
+       of the tool bar before calling x_figure_window_size.
+
        * xmenu.c (free_frame_menubar): Set the frame's menubar_widget to
        NULL after destroying it, otherwise XTread_socket can access a
        destroyed widget when input is unblocked.
index 1add97f6599099f6626f34793f7086204fab8e6a..8ed08ee75ffd90a6586159ed7b6fc4fac15b74dc 100644 (file)
@@ -4312,6 +4312,36 @@ This function is an internal primitive--use `make-frame' instead.")
                       "title", "Title", RES_TYPE_STRING);
 
   f->output_data.x->parent_desc = FRAME_X_DISPLAY_INFO (f)->root_window;
+
+  /* Add the tool-bar height to the initial frame height so that the
+     user gets a text display area of the size he specified with -g or
+     via .Xdefaults.  Later changes of the tool-bar height don't
+     change the frame size.  This is done so that users can create
+     tall Emacs frames without having to guess how tall the tool-bar
+     will get.  */
+  if (FRAME_TOOL_BAR_LINES (f))
+    {
+      int margin, relief, bar_height;
+      
+      relief = (tool_bar_button_relief > 0
+               ? tool_bar_button_relief
+               : DEFAULT_TOOL_BAR_BUTTON_RELIEF);
+
+      if (INTEGERP (Vtool_bar_button_margin)
+         && XINT (Vtool_bar_button_margin) > 0)
+       margin = XFASTINT (Vtool_bar_button_margin);
+      else if (CONSP (Vtool_bar_button_margin)
+              && INTEGERP (XCDR (Vtool_bar_button_margin))
+              && XINT (XCDR (Vtool_bar_button_margin)) > 0)
+       margin = XFASTINT (XCDR (Vtool_bar_button_margin));
+      else
+       margin = 0;
+         
+      bar_height = DEFAULT_TOOL_BAR_IMAGE_HEIGHT + 2 * margin + 2 * relief;
+      f->height += (bar_height + CANON_Y_UNIT (f) - 1) / CANON_Y_UNIT (f);
+    }
+
+  /* Compute the size of the X window.  */
   window_prompting = x_figure_window_size (f, parms);
 
   if (window_prompting & XNegative)
@@ -4369,34 +4399,6 @@ This function is an internal primitive--use `make-frame' instead.")
   width = f->width;
   height = f->height;
   
-  /* Add the tool-bar height to the initial frame height so that the
-     user gets a text display area of the size he specified with -g or
-     via .Xdefaults.  Later changes of the tool-bar height don't
-     change the frame size.  This is done so that users can create
-     tall Emacs frames without having to guess how tall the tool-bar
-     will get.  */
-  if (FRAME_TOOL_BAR_LINES (f))
-    {
-      int margin, relief, bar_height;
-      
-      relief = (tool_bar_button_relief > 0
-               ? tool_bar_button_relief
-               : DEFAULT_TOOL_BAR_BUTTON_RELIEF);
-
-      if (INTEGERP (Vtool_bar_button_margin)
-         && XINT (Vtool_bar_button_margin) > 0)
-       margin = XFASTINT (Vtool_bar_button_margin);
-      else if (CONSP (Vtool_bar_button_margin)
-              && INTEGERP (XCDR (Vtool_bar_button_margin))
-              && XINT (XCDR (Vtool_bar_button_margin)) > 0)
-       margin = XFASTINT (XCDR (Vtool_bar_button_margin));
-      else
-       margin = 0;
-         
-      bar_height = DEFAULT_TOOL_BAR_IMAGE_HEIGHT + 2 * margin + 2 * relief;
-      height += (bar_height + CANON_Y_UNIT (f) - 1) / CANON_Y_UNIT (f);
-    }
-
   f->height = 0;
   SET_FRAME_WIDTH (f, 0);
   change_frame_size (f, height, width, 1, 0, 0);