diff options
author | zeertzjq <zeertzjq@outlook.com> | 2023-05-08 16:25:03 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-08 16:25:03 +0800 |
commit | 4ecf6fdfd857b52c0bab9a8dbfc760364ac2677b (patch) | |
tree | 1c6587e6674159b0fe8eb53a7d06e71a8c1d2c65 | |
parent | a961bb71010b5579df9d05aae17fe224f8066e94 (diff) | |
download | rneovim-4ecf6fdfd857b52c0bab9a8dbfc760364ac2677b.tar.gz rneovim-4ecf6fdfd857b52c0bab9a8dbfc760364ac2677b.tar.bz2 rneovim-4ecf6fdfd857b52c0bab9a8dbfc760364ac2677b.zip |
fix(statusline): bail out properly on negative row (#23535)
-rw-r--r-- | src/nvim/statusline.c | 2 | ||||
-rw-r--r-- | test/functional/ui/winbar_spec.lua | 23 |
2 files changed, 24 insertions, 1 deletions
diff --git a/src/nvim/statusline.c b/src/nvim/statusline.c index a6fd1d677b..5a14d57538 100644 --- a/src/nvim/statusline.c +++ b/src/nvim/statusline.c @@ -336,7 +336,7 @@ static void win_redr_custom(win_T *wp, bool draw_winbar, bool draw_ruler) grid_adjust(&grid, &row, &col); if (row < 0) { - return; + goto theend; } fillchar = wp->w_p_fcs_chars.wbr; diff --git a/test/functional/ui/winbar_spec.lua b/test/functional/ui/winbar_spec.lua index 970f9c3d76..3b79f4328d 100644 --- a/test/functional/ui/winbar_spec.lua +++ b/test/functional/ui/winbar_spec.lua @@ -713,3 +713,26 @@ describe('local winbar with tabs', function() ]]} end) end) + +it('winbar works properly when redrawing is postponed #23534', function() + clear({args = { + '-c', 'set laststatus=2 lazyredraw', + '-c', 'setlocal statusline=(statusline) winbar=(winbar)', + '-c', 'call nvim_input(":<Esc>")', + }}) + local screen = Screen.new(60, 6) + screen:attach() + screen:set_default_attr_ids({ + [0] = {foreground = Screen.colors.Blue, bold = true}, + [1] = {bold = true}, + [2] = {bold = true, reverse = true}, + }) + screen:expect([[ + {1:(winbar) }| + ^ | + {0:~ }| + {0:~ }| + {2:(statusline) }| + | + ]]) +end) |