forked from aniani/vim
patch 9.0.0403: 'equalalways' may be off when 'laststatus' is zero
Problem: 'equalalways' may be off when 'laststatus' is zero. Solution: call last_status() before win_equal(). (Luuk van Baal, closes #11070)
This commit is contained in:
parent
bb6c4073e7
commit
fd7e60a33d
@ -1617,4 +1617,19 @@ func Test_window_alloc_failure()
|
|||||||
tabonly
|
tabonly
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_win_equal_last_status()
|
||||||
|
let save_lines = &lines
|
||||||
|
set lines=20
|
||||||
|
set splitbelow
|
||||||
|
set laststatus=0
|
||||||
|
|
||||||
|
split | split | quit
|
||||||
|
call assert_equal(winheight(1), winheight(2))
|
||||||
|
|
||||||
|
let &lines = save_lines
|
||||||
|
set splitbelow&
|
||||||
|
set laststatus&
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
|
||||||
" vim: shiftwidth=2 sts=2 expandtab
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
@ -703,6 +703,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
403,
|
||||||
/**/
|
/**/
|
||||||
402,
|
402,
|
||||||
/**/
|
/**/
|
||||||
|
14
src/window.c
14
src/window.c
@ -2712,6 +2712,14 @@ win_close(win_T *win, int free_buf)
|
|||||||
// using the window.
|
// using the window.
|
||||||
check_cursor();
|
check_cursor();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If last window has a status line now and we don't want one, remove the
|
||||||
|
* status line. Do this before win_equal(), because it may change the
|
||||||
|
* height of a window
|
||||||
|
*/
|
||||||
|
last_status(FALSE);
|
||||||
|
|
||||||
if (p_ea && (*p_ead == 'b' || *p_ead == dir))
|
if (p_ea && (*p_ead == 'b' || *p_ead == dir))
|
||||||
// If the frame of the closed window contains the new current window,
|
// If the frame of the closed window contains the new current window,
|
||||||
// only resize that frame. Otherwise resize all windows.
|
// only resize that frame. Otherwise resize all windows.
|
||||||
@ -2741,12 +2749,6 @@ win_close(win_T *win, int free_buf)
|
|||||||
--dont_parse_messages;
|
--dont_parse_messages;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
|
||||||
* If last window has a status line now and we don't want one,
|
|
||||||
* remove the status line.
|
|
||||||
*/
|
|
||||||
last_status(FALSE);
|
|
||||||
|
|
||||||
// After closing the help window, try restoring the window layout from
|
// After closing the help window, try restoring the window layout from
|
||||||
// before it was opened.
|
// before it was opened.
|
||||||
if (help_window)
|
if (help_window)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user