Merge pull request #23864 from folke/nvim_win_set_height

fix(api): dont change curwin for nvim_win_set_height
This commit is contained in:
bfredl 2023-06-03 18:12:24 +02:00 committed by GitHub
commit 72300feecf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 12 deletions

View File

@ -167,13 +167,8 @@ void nvim_win_set_height(Window window, Integer height, Error *err)
return;
}
win_T *savewin = curwin;
curwin = win;
curbuf = curwin->w_buffer;
try_start();
win_setheight((int)height);
curwin = savewin;
curbuf = curwin->w_buffer;
win_setheight_win((int)height, win);
try_end(err);
}
@ -214,13 +209,8 @@ void nvim_win_set_width(Window window, Integer width, Error *err)
return;
}
win_T *savewin = curwin;
curwin = win;
curbuf = curwin->w_buffer;
try_start();
win_setwidth((int)width);
curwin = savewin;
curbuf = curwin->w_buffer;
win_setwidth_win((int)width, win);
try_end(err);
}

View File

@ -285,6 +285,22 @@ describe('API/win', function()
eq(2, window('get_height', nvim('list_wins')[2]))
end)
it('correctly handles height=1', function()
nvim('command', 'split')
nvim('set_current_win', nvim('list_wins')[1])
window('set_height', nvim('list_wins')[2], 1)
eq(1, window('get_height', nvim('list_wins')[2]))
end)
it('correctly handles height=1 with a winbar', function()
nvim('command', 'set winbar=foobar')
nvim('command', 'set winminheight=0')
nvim('command', 'split')
nvim('set_current_win', nvim('list_wins')[1])
window('set_height', nvim('list_wins')[2], 1)
eq(1, window('get_height', nvim('list_wins')[2]))
end)
it('do not cause ml_get errors with foldmethod=expr #19989', function()
insert([[
aaaaa