summaryrefslogtreecommitdiff
path: root/src/xfns.c
diff options
context:
space:
mode:
authorMartin Rudalics <rudalics@gmx.at>2015-01-12 08:18:00 +0100
committerMartin Rudalics <rudalics@gmx.at>2015-01-12 08:18:00 +0100
commitfb35f1f715da1a931204894b132d7fb6eee0f361 (patch)
treedfbedd451cf16a9b6f92bdb551e23b262f110fdb /src/xfns.c
parentd703a4dce564ede122f5c307889e4bd0e3f3e75c (diff)
downloademacs-fb35f1f715da1a931204894b132d7fb6eee0f361.tar.gz
Adjust frame heights to real height of tool bar.
* frame.el (frame-notice-user-settings): Remove code dealing with frame-initial-frame-tool-bar-height. Turn off `tool-bar-mode' only if `window-system-frame-alist' or `default-frame-alist' ask for it. (make-frame): Update frame-adjust-size-history if needed. * dispnew.c (change_frame_size_1): Pass Qchange_frame_size to adjust_frame_size. * frame.c (frame_default_tool_bar_height): New variable. (adjust_frame_size): Possibly add requested adjustment to Vframe_adjust_size_history. (make_frame): Initialize tool_bar_redisplayed_once slot. (Fset_frame_height, Fset_frame_width, Fset_frame_size): Clarify doc-string. Call adjust_frame_size unconditionally (the frame's text size may remain unaltered but the pixel size may change). (x_figure_window_size): If frame_default_tool_bar_height was set, use it instead of calculating the tool bar height from DEFAULT_TOOL_BAR_IMAGE_HEIGHT. Don't set Vframe_initial_frame_tool_bar_height. (Qchange_frame_size, Qxg_frame_set_char_size) (Qset_window_configuration, Qx_create_frame_1) (Qx_create_frame_2): New symbols. (Vframe_initial_frame_tool_bar_height): Remove. (Vframe_adjust_size_history): New history variable for debugging frame size adjustments. * frame.h (struct frame): New boolean slot tool_bar_redisplayed_once. (frame_default_tool_bar_height): Extern. * gtkutil.c (xg_frame_set_char_size): Pass Qxg_frame_set_char_size to adjust_frame_size. * nsfns.m (Fx_create_frame): Pass Pass Qx_create_frame_1 and Qx_create_frame_2 to adjust_frame_size. * w32fns.c (x_change_tool_bar_height): Call adjust_frame_size with inhibit 1 when we have not redisplayed the tool bar yet. (Fx_create_frame): Pass Pass Qx_create_frame_1 and Qx_create_frame_2 to adjust_frame_size. * w32menu.c (set_frame_menubar): Simplify adjust_frame_size call. * window.c (Fset_window_configuration): Pass Qset_window_configuration to adjust_frame_size. * xdisp.c (redisplay_tool_bar): Assign new height to frame_default_tool_bar_height. (redisplay_internal): If we haven't redisplayed this frame's tool bar, call redisplay_tool_bar early so we can adjust the frame size accordingly. * xfns.c (x_change_tool_bar_height): Call adjust_frame_size with inhibit 1 when we have not redisplayed the tool bar yet. (Fx_create_frame): Pass Pass Qx_create_frame_1 and Qx_create_frame_2 to adjust_frame_size.
Diffstat (limited to 'src/xfns.c')
-rw-r--r--src/xfns.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/xfns.c b/src/xfns.c
index 4a417526dcd..936c769a2de 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -1130,8 +1130,11 @@ x_change_tool_bar_height (struct frame *f, int height)
/* Recalculate toolbar height. */
f->n_tool_bar_rows = 0;
- adjust_frame_size (f, -1, -1, (old_height == 0 || height == 0) ? 2 : 4, 0,
- Qtool_bar_lines);
+ adjust_frame_size (f, -1, -1,
+ (!f->tool_bar_redisplayed_once ? 1
+ : (old_height == 0 || height == 0) ? 2
+ : 4),
+ 0, Qtool_bar_lines);
/* adjust_frame_size might not have done anything, garbage frame
here. */
@@ -3160,7 +3163,8 @@ This function is an internal primitive--use `make-frame' instead. */)
had one frame line vs one toolbar line which left us with a zero
root window height which was obviously wrong as well ... */
adjust_frame_size (f, FRAME_COLS (f) * FRAME_COLUMN_WIDTH (f),
- FRAME_LINES (f) * FRAME_LINE_HEIGHT (f), 5, 1, Qnil);
+ FRAME_LINES (f) * FRAME_LINE_HEIGHT (f), 5, 1,
+ Qx_create_frame_1);
/* Set the menu-bar-lines and tool-bar-lines parameters. We don't
look up the X resources controlling the menu-bar and tool-bar
@@ -3234,7 +3238,8 @@ This function is an internal primitive--use `make-frame' instead. */)
/* Consider frame official, now. */
f->can_x_set_window_size = true;
- adjust_frame_size (f, FRAME_TEXT_WIDTH (f), FRAME_TEXT_HEIGHT (f), 0, 1, Qnil);
+ adjust_frame_size (f, FRAME_TEXT_WIDTH (f), FRAME_TEXT_HEIGHT (f), 0, 1,
+ Qx_create_frame_2);
#if defined (USE_X_TOOLKIT) || defined (USE_GTK)
/* Create the menu bar. */