fix(options): setting 'scroll' with resized grid (#26628)

This commit is contained in:
zeertzjq 2023-12-18 10:15:23 +08:00 committed by GitHub
parent 6abdc1ac1f
commit d956bc6379
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 3 deletions

View File

@ -2796,7 +2796,8 @@ static const char *check_num_option_bounds(OptInt *pp, OptInt old_value, char *e
}
}
if ((curwin->w_p_scr <= 0 || (curwin->w_p_scr > curwin->w_height && curwin->w_height > 0))
if ((curwin->w_p_scr <= 0
|| (curwin->w_p_scr > curwin->w_height_inner && curwin->w_height_inner > 0))
&& full_screen) {
if (pp == &(curwin->w_p_scr)) {
if (curwin->w_p_scr != 0) {
@ -2806,8 +2807,8 @@ static const char *check_num_option_bounds(OptInt *pp, OptInt old_value, char *e
} else if (curwin->w_p_scr <= 0) {
// If 'scroll' became invalid because of a side effect silently adjust it.
curwin->w_p_scr = 1;
} else { // curwin->w_p_scr > curwin->w_height
curwin->w_p_scr = curwin->w_height;
} else { // curwin->w_p_scr > curwin->w_height_inner
curwin->w_p_scr = curwin->w_height_inner;
}
}
if ((p_sj < -100 || p_sj >= Rows) && full_screen) {

View File

@ -461,6 +461,12 @@ describe('ext_multigrid', function()
eq(20, win_info.height)
end)
it("'scroll' option works properly", function()
eq(10, meths.get_option_value('scroll', { win = 0 }))
meths.set_option_value('scroll', 15, { win = 0 })
eq(15, meths.get_option_value('scroll', { win = 0 }))
end)
it('gets written till grid width', function()
insert(('a'):rep(60).."\n")
screen:expect{grid=[[