Fixed a toolbar related issue on OS X.

Earlier, when toggling the tool-bar in a maximized frame, the
frame size didn't match the number of text lines, leaving an
unused area at the bottom of the frame.

* nsfns.m (x_set_tool_bar_lines): Exit maximized and full height
fullscreen modes when tool bar is disabled.
This commit is contained in:
Anders Lindgren 2015-11-15 19:17:53 +01:00
parent 63e6f4c820
commit b36ba568a9

View file

@ -648,6 +648,11 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side
void
x_set_tool_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval)
{
/* Currently, when the tool bar change state, the frame is resized.
TODO: It would be better if this didn't occur when 1) the frame
is full height or maximized or 2) when specified by
`frame-inhibit-implied-resize'. */
int nlines;
if (FRAME_MINIBUF_ONLY_P (f))
@ -669,7 +674,21 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side
{
free_frame_tool_bar (f);
FRAME_EXTERNAL_TOOL_BAR (f) = 0;
}
{
EmacsView *view = FRAME_NS_VIEW (f);
int fs_state = [view fullscreenState];
if (fs_state == FULLSCREEN_MAXIMIZED)
{
[view setFSValue:FULLSCREEN_WIDTH];
}
else if (fs_state == FULLSCREEN_HEIGHT)
{
[view setFSValue:FULLSCREEN_NONE];
}
}
}
}
{
@ -680,8 +699,6 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side
|| (CONSP (frame_inhibit_implied_resize)
&& !NILP (Fmemq (Qtool_bar_lines,
frame_inhibit_implied_resize))))
/* This will probably fail to DTRT in the
fullheight/-width cases. */
&& NILP (get_frame_param (f, Qfullscreen)))
? 0
: 2);