1
0
forked from aniani/vim

patch 8.2.1780: statusline not updated when splitting windows

Problem:    Statusline not updated when splitting windows.
Solution:   Call status_redraw_all(). (Jason Franklin, closes #5496)
This commit is contained in:
Bram Moolenaar
2020-10-01 19:06:35 +02:00
parent 0022675aa3
commit 668008be66
3 changed files with 22 additions and 5 deletions

View File

@@ -433,4 +433,21 @@ func Test_statusline_removed_group()
call delete('XTest_statusline') call delete('XTest_statusline')
endfunc endfunc
func Test_statusline_after_split_vsplit()
only
" Make the status line of each window show the window number.
set ls=2 stl=%{winnr()}
split | redraw
vsplit | redraw
" The status line of the third window should read '3' here.
call assert_equal('3', nr2char(screenchar(&lines - 1, 1)))
only
set ls& stl&
endfunc
" vim: shiftwidth=2 sts=2 expandtab " vim: shiftwidth=2 sts=2 expandtab

View File

@@ -750,6 +750,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 */
/**/
1780,
/**/ /**/
1779, 1779,
/**/ /**/

View File

@@ -1273,13 +1273,11 @@ win_split_ins(
if (flags & (WSP_TOP | WSP_BOT)) if (flags & (WSP_TOP | WSP_BOT))
(void)win_comp_pos(); (void)win_comp_pos();
/* // Both windows need redrawing. Update all status lines, in case they
* Both windows need redrawing // show something related to the window count or position.
*/
redraw_win_later(wp, NOT_VALID); redraw_win_later(wp, NOT_VALID);
wp->w_redr_status = TRUE;
redraw_win_later(oldwin, NOT_VALID); redraw_win_later(oldwin, NOT_VALID);
oldwin->w_redr_status = TRUE; status_redraw_all();
if (need_status) if (need_status)
{ {