mirror of
https://github.com/neovim/neovim.git
synced 2024-12-19 18:55:14 -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.
|
// non-displayed part of msg_grid is considered invalid.
|
||||||
for (int i = 0; i < MIN(msg_scrollsize(), msg_grid.rows); i++) {
|
for (int i = 0; i < MIN(msg_scrollsize(), msg_grid.rows); i++) {
|
||||||
grid_clear_line(&msg_grid, msg_grid.line_offset[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;
|
msg_grid.throttled = false;
|
||||||
|
@ -1021,6 +1021,26 @@ describe('cmdheight=0', function()
|
|||||||
screen:attach()
|
screen:attach()
|
||||||
end)
|
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()
|
it("with cmdheight=1 noruler laststatus=2", function()
|
||||||
command("set cmdheight=1 noruler laststatus=2")
|
command("set cmdheight=1 noruler laststatus=2")
|
||||||
screen:expect{grid=[[
|
screen:expect{grid=[[
|
||||||
|
Loading…
Reference in New Issue
Block a user