mirror of
https://github.com/neovim/neovim.git
synced 2024-12-19 10:45:16 -07:00
fix(ui): "resize -1" with cmdheight=0 #24758
Problem: Crash from: set cmdheight=0 redrawdebug=invalid resize -1 Solution: Do not invalidate first `p_ch` `msg_grid` rows in `update_screen` when scrolling the screen down after displaying a message, because they may be used later for drawing cmdline. Fixes #22154
This commit is contained in:
parent
3bbb0aa399
commit
0592fd5e17
@ -471,7 +471,7 @@ int update_screen(void)
|
||||
// non-displayed part of msg_grid is considered invalid.
|
||||
for (int i = 0; i < MIN(msg_scrollsize(), msg_grid.rows); i++) {
|
||||
grid_clear_line(&msg_grid, msg_grid.line_offset[i],
|
||||
msg_grid.cols, false);
|
||||
msg_grid.cols, i < p_ch);
|
||||
}
|
||||
}
|
||||
msg_grid.throttled = false;
|
||||
|
@ -1021,6 +1021,26 @@ describe('cmdheight=0', function()
|
||||
screen:attach()
|
||||
end)
|
||||
|
||||
it("with redrawdebug=invalid resize -1", function()
|
||||
command("set redrawdebug=invalid cmdheight=0 noruler laststatus=0")
|
||||
screen:expect{grid=[[
|
||||
^ |
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
]]}
|
||||
feed(":resize -1<CR>")
|
||||
screen:expect{grid=[[
|
||||
^ |
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
|
|
||||
]]}
|
||||
assert_alive()
|
||||
end)
|
||||
|
||||
it("with cmdheight=1 noruler laststatus=2", function()
|
||||
command("set cmdheight=1 noruler laststatus=2")
|
||||
screen:expect{grid=[[
|
||||
|
Loading…
Reference in New Issue
Block a user