diff options
author | Bram Moolenaar <Bram@vim.org> | 2019-06-02 20:33:32 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2019-06-02 20:33:32 +0200 |
commit | 98fb65cb051f625f4ce291a9f9cdb2e54ac1e688 (patch) | |
tree | 64f1ef68ac5d244619a0400f16672030c58d0a05 | |
parent | 1762731f2039d78fc8ddd785c3d3b52e5968c0f1 (diff) | |
download | vim-git-98fb65cb051f625f4ce291a9f9cdb2e54ac1e688.tar.gz |
patch 8.1.1456: WinBar not redrawn after scrolling one linev8.1.1456
Problem: WinBar not redrawn after scrolling one line.
Solution: Exclude the winbar height when deciding what to redraw.
(closes #4473)
-rw-r--r-- | src/screen.c | 2 | ||||
-rw-r--r-- | src/testdir/test_winbar.vim | 12 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 15 insertions, 1 deletions
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<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 13961d4da..29006c12c 100644 --- 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, |