mirror of
https://github.com/neovim/neovim.git
synced 2025-11-19 16:51:18 +00:00
fix(events): trigger VimResume on next UI request
(cherry picked from commit cdd076d6c1)
This commit is contained in:
committed by
github-actions[bot]
parent
d82f386201
commit
e8ff921ed3
@@ -1,8 +1,11 @@
|
||||
local helpers = require('test.functional.helpers')(after_each)
|
||||
local Screen = require('test.functional.ui.screen')
|
||||
local clear = helpers.clear
|
||||
local command = helpers.command
|
||||
local eq = helpers.eq
|
||||
local eval = helpers.eval
|
||||
local exec = helpers.exec
|
||||
local feed = helpers.feed
|
||||
local meths = helpers.meths
|
||||
local request = helpers.request
|
||||
local pcall_err = helpers.pcall_err
|
||||
@@ -76,3 +79,59 @@ it('autocmds UIEnter/UILeave', function()
|
||||
'UILeave',
|
||||
}, eval('g:evs'))
|
||||
end)
|
||||
|
||||
it('autocmds VimSuspend/VimResume #22041', function()
|
||||
clear()
|
||||
local screen = Screen.new()
|
||||
screen:attach()
|
||||
exec([[
|
||||
let g:ev = []
|
||||
autocmd VimResume * :call add(g:ev, 'r')
|
||||
autocmd VimSuspend * :call add(g:ev, 's')
|
||||
]])
|
||||
|
||||
eq(false, screen.suspended)
|
||||
feed('<C-Z>')
|
||||
screen:expect(function() eq (true, screen.suspended) end)
|
||||
eq({ 's' }, eval('g:ev'))
|
||||
screen.suspended = false
|
||||
feed('<Ignore>')
|
||||
eq({ 's', 'r' }, eval('g:ev'))
|
||||
|
||||
command('suspend')
|
||||
screen:expect(function() eq (true, screen.suspended) end)
|
||||
eq({ 's', 'r', 's' }, eval('g:ev'))
|
||||
screen.suspended = false
|
||||
meths.input_mouse('move', '', '', 0, 0, 0)
|
||||
eq({ 's', 'r', 's', 'r' }, eval('g:ev'))
|
||||
|
||||
feed('<C-Z>')
|
||||
screen:expect(function() eq (true, screen.suspended) end)
|
||||
meths.ui_set_focus(false)
|
||||
eq({ 's', 'r', 's', 'r', 's' }, eval('g:ev'))
|
||||
screen.suspended = false
|
||||
meths.ui_set_focus(true)
|
||||
eq({ 's', 'r', 's', 'r', 's', 'r' }, eval('g:ev'))
|
||||
|
||||
command('suspend')
|
||||
screen:expect(function() eq (true, screen.suspended) end)
|
||||
screen:detach()
|
||||
eq({ 's', 'r', 's', 'r', 's', 'r', 's' }, eval('g:ev'))
|
||||
screen.suspended = false
|
||||
screen:attach()
|
||||
eq({ 's', 'r', 's', 'r', 's', 'r', 's', 'r' }, eval('g:ev'))
|
||||
|
||||
eq(false, screen.suspended)
|
||||
feed('<C-Z><C-Z><C-Z><C-Z>')
|
||||
screen:expect(function() eq (true, screen.suspended) end)
|
||||
eq({ 's', 'r', 's', 'r', 's', 'r', 's', 'r', 's' }, eval('g:ev'))
|
||||
screen.suspended = false
|
||||
feed('<C-Z><C-Z><C-Z><C-Z>')
|
||||
eq({ 's', 'r', 's', 'r', 's', 'r', 's', 'r', 's', 'r', 's' }, eval('g:ev'))
|
||||
screen:expect(function() eq (true, screen.suspended) end)
|
||||
screen.suspended = false
|
||||
feed('i<C-R>=g:ev<CR>')
|
||||
eq({ 's', 'r', 's', 'r', 's', 'r', 's', 'r', 's', 'r', 's', 'r' }, eval('g:ev'))
|
||||
eq({ 's', 'r', 's', 'r', 's', 'r', 's', 'r', 's', 'r', 's', 'r', '' },
|
||||
meths.buf_get_lines(0, 0, -1, true))
|
||||
end)
|
||||
|
||||
Reference in New Issue
Block a user