From 98fb65cb051f625f4ce291a9f9cdb2e54ac1e688 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sun, 2 Jun 2019 20:33:32 +0200 Subject: 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) --- src/screen.c | 2 +- src/testdir/test_winbar.vim | 12 ++++++++++++ src/version.c | 2 ++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/screen.c b/src/screen.c index 8c97e880e..37999bbf6 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 a34c29e41..c0b43b934 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 13961d4da..29006c12c 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, /**/ -- cgit v1.2.1