aboutsummaryrefslogtreecommitdiffstats
path: root/src/xfns.c
diff options
context:
space:
mode:
authorGerd Moellmann <[email protected]>2001-03-01 16:39:11 +0000
committerGerd Moellmann <[email protected]>2001-03-01 16:39:11 +0000
commit35f59f6b575dd2e85d65ddb21139b395194694c7 (patch)
treecf90ceffe95d9f7c5822faca167b3fac0aedce45 /src/xfns.c
parentf84ff02c8103b347cea4c17ff46b8bc10b00883e (diff)
(Fx_create_frame): Adjust the frame's height for presence
of the tool bar before calling x_figure_window_size.
Diffstat (limited to 'src/xfns.c')
-rw-r--r--src/xfns.c58
1 files changed, 30 insertions, 28 deletions
diff --git a/src/xfns.c b/src/xfns.c
index 1add97f659..8ed08ee75f 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -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);