Merge pull request #17192 from zeertzjq/aucmd-redrawingdisabled

fix: set RedrawingDisabled before entering aucmd_win
This commit is contained in:
bfredl 2022-01-29 19:16:48 +01:00 committed by GitHub
commit 4b719e4a16
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 59 additions and 2 deletions

View File

@ -1160,7 +1160,10 @@ void aucmd_prepbuf(aco_save_T *aco, buf_T *buf)
// Prevent chdir() call in win_enter_ext(), through do_autochdir()
int save_acd = p_acd;
p_acd = false;
// no redrawing and don't set the window title
RedrawingDisabled++;
win_enter(aucmd_win, false);
RedrawingDisabled--;
p_acd = save_acd;
unblock_autocmds();
curwin = aucmd_win;

View File

@ -6,6 +6,7 @@ local insert = helpers.insert
local eq = helpers.eq
local eval = helpers.eval
local iswin = helpers.iswin
local funcs, meths, exec_lua = helpers.funcs, helpers.meths, helpers.exec_lua
describe('screen', function()
local screen
@ -127,14 +128,67 @@ local function screen_tests(linegrid)
end)
it('has correct default title with named file', function()
local expected = (iswin() and 'myfile (C:\\mydir) - NVIM'
or 'myfile (/mydir) - NVIM')
local expected = (iswin() and 'myfile (C:\\mydir) - NVIM' or 'myfile (/mydir) - NVIM')
command('set title')
command(iswin() and 'file C:\\mydir\\myfile' or 'file /mydir/myfile')
screen:expect(function()
eq(expected, screen.title)
end)
end)
describe('is not changed by', function()
local file1 = iswin() and 'C:\\mydir\\myfile1' or '/mydir/myfile1'
local file2 = iswin() and 'C:\\mydir\\myfile2' or '/mydir/myfile2'
local expected = (iswin() and 'myfile1 (C:\\mydir) - NVIM' or 'myfile1 (/mydir) - NVIM')
local buf2
before_each(function()
command('edit '..file1)
buf2 = funcs.bufadd(file2)
command('set title')
end)
it('calling setbufvar() to set an option in a hidden buffer from i_CTRL-R', function()
command([[inoremap <F2> <C-R>=setbufvar(]]..buf2..[[, '&autoindent', 1) ? '' : ''<CR>]])
feed('i<F2><Esc>')
command('redraw!')
screen:expect(function()
eq(expected, screen.title)
end)
end)
it('an RPC call to nvim_buf_set_option in a hidden buffer', function()
meths.buf_set_option(buf2, 'autoindent', true)
command('redraw!')
screen:expect(function()
eq(expected, screen.title)
end)
end)
it('a Lua callback calling nvim_buf_set_option in a hidden buffer', function()
exec_lua(string.format([[
vim.schedule(function()
vim.api.nvim_buf_set_option(%d, 'autoindent', true)
end)
]], buf2))
command('redraw!')
screen:expect(function()
eq(expected, screen.title)
end)
end)
it('a Lua callback calling nvim_buf_call in a hidden buffer', function()
exec_lua(string.format([[
vim.schedule(function()
vim.api.nvim_buf_call(%d, function() end)
end)
]], buf2))
command('redraw!')
screen:expect(function()
eq(expected, screen.title)
end)
end)
end)
end)
describe(':set icon', function()