patch 8.1.1456: WinBar not redrawn after scrolling one line
Problem: WinBar not redrawn after scrolling one line.
Solution: Exclude the winbar height when deciding what to redraw.
(closes #4473)
diff --git a/src/screen.c b/src/screen.c
index 8c97e88..37999bb 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -645,7 +645,7 @@
type = CLEAR;
FOR_ALL_WINDOWS(wp)
{
- if (W_WINROW(wp) < msg_scrolled)
+ if (wp->w_winrow < msg_scrolled)
{
if (W_WINROW(wp) + wp->w_height > msg_scrolled
&& wp->w_redr_type < REDRAW_TOP
diff --git a/src/testdir/test_winbar.vim b/src/testdir/test_winbar.vim
index a34c29e..c0b43b9 100644
--- a/src/testdir/test_winbar.vim
+++ b/src/testdir/test_winbar.vim
@@ -110,3 +110,15 @@
bwipe!
endfunc
+
+func Test_redraw_after_scroll()
+ new
+ amenu 1.10 WinBar.Next :let g:did_next = 11<CR>
+ redraw
+ call assert_equal(" Next", Screenline(1))
+ echo "some\nmore"
+ redraw
+ call assert_equal(" Next", Screenline(1))
+ bwipe!
+endfunc
+
diff --git a/src/version.c b/src/version.c
index 13961d4..29006c1 100644
--- a/src/version.c
+++ b/src/version.c
@@ -768,6 +768,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1456,
+/**/
1455,
/**/
1454,