diff options
author | Gerd Moellmann <[email protected]> | 2001-03-01 16:39:11 +0000 |
---|---|---|
committer | Gerd Moellmann <[email protected]> | 2001-03-01 16:39:11 +0000 |
commit | 35f59f6b575dd2e85d65ddb21139b395194694c7 (patch) | |
tree | cf90ceffe95d9f7c5822faca167b3fac0aedce45 /src/xfns.c | |
parent | f84ff02c8103b347cea4c17ff46b8bc10b00883e (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.c | 58 |
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); |