# HG changeset patch # User Bram Moolenaar # Date 1559501104 -7200 # Node ID 6a99709c6ae329948dcbd361443e913a26ccba84 # Parent 62f09dafee3431f1439cdc176164fc8579276938 patch 8.1.1456: WinBar not redrawn after scrolling one line commit https://github.com/vim/vim/commit/98fb65cb051f625f4ce291a9f9cdb2e54ac1e688 Author: Bram Moolenaar Date: Sun Jun 2 20:33:32 2019 +0200 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 --- 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 --- 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 --- a/src/version.c +++ b/src/version.c @@ -768,6 +768,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1456, +/**/ 1455, /**/ 1454,