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)
diff --git a/src/testdir/test_statusline.vim b/src/testdir/test_statusline.vim
index f73998a..d8e921f 100644
--- a/src/testdir/test_statusline.vim
+++ b/src/testdir/test_statusline.vim
@@ -433,4 +433,21 @@
call delete('XTest_statusline')
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
diff --git a/src/version.c b/src/version.c
index 39dcf2e..bbe6dd5 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1780,
+/**/
1779,
/**/
1778,
diff --git a/src/window.c b/src/window.c
index c73062d..64017bf 100644
--- a/src/window.c
+++ b/src/window.c
@@ -1273,13 +1273,11 @@
if (flags & (WSP_TOP | WSP_BOT))
(void)win_comp_pos();
- /*
- * Both windows need redrawing
- */
+ // Both windows need redrawing. Update all status lines, in case they
+ // show something related to the window count or position.
redraw_win_later(wp, NOT_VALID);
- wp->w_redr_status = TRUE;
redraw_win_later(oldwin, NOT_VALID);
- oldwin->w_redr_status = TRUE;
+ status_redraw_all();
if (need_status)
{