diff --git a/src/screen.c b/src/screen.c index 8c97e880e6..37999bbf6b 100644 --- a/src/screen.c +++ b/src/screen.c @@ -645,7 +645,7 @@ update_screen(int type_arg) 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 a34c29e412..c0b43b934e 100644 --- a/src/testdir/test_winbar.vim +++ b/src/testdir/test_winbar.vim @@ -110,3 +110,15 @@ func Test_click_in_other_winbar() bwipe! endfunc + +func Test_redraw_after_scroll() + new + amenu 1.10 WinBar.Next :let g:did_next = 11 + 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 13961d4dab..29006c12c2 100644 --- a/src/version.c +++ b/src/version.c @@ -767,6 +767,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1456, /**/ 1455, /**/