diff options
author | errael <errael@raelity.com> | 2024-11-07 00:21:28 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-07 16:21:28 +0800 |
commit | 000129201c54d4ba391f7473d0c183f000246c3e (patch) | |
tree | 4e0ebcdd835b5e7d02bf127203918d171eff9f6a /test/functional/ui/mouse_spec.lua | |
parent | f7e32fb6e626ab198bf401765236783890f3a0d6 (diff) | |
download | rneovim-000129201c54d4ba391f7473d0c183f000246c3e.tar.gz rneovim-000129201c54d4ba391f7473d0c183f000246c3e.tar.bz2 rneovim-000129201c54d4ba391f7473d0c183f000246c3e.zip |
perf(mouse): only generate <MouseMove> for a new cell positon (#31103)
Problem: Can receive dozens of <MouseMove> events for same cell position. #30965
Solution: Leverage check_multiclick() to detect if cell position is unchanged.
Diffstat (limited to 'test/functional/ui/mouse_spec.lua')
-rw-r--r-- | test/functional/ui/mouse_spec.lua | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/test/functional/ui/mouse_spec.lua b/test/functional/ui/mouse_spec.lua index bc18680749..09aa3f17b3 100644 --- a/test/functional/ui/mouse_spec.lua +++ b/test/functional/ui/mouse_spec.lua @@ -1908,19 +1908,33 @@ describe('ui/mouse/input', function() eq(0, api.nvim_get_var('mouse_up2')) end) - it('<MouseMove> is not translated into multiclicks and can be mapped', function() + it('<MouseMove> to different locations can be mapped', function() api.nvim_set_var('mouse_move', 0) api.nvim_set_var('mouse_move2', 0) command('nnoremap <MouseMove> <Cmd>let g:mouse_move += 1<CR>') command('nnoremap <2-MouseMove> <Cmd>let g:mouse_move2 += 1<CR>') - feed('<MouseMove><0,0>') - feed('<MouseMove><0,0>') - api.nvim_input_mouse('move', '', '', 0, 0, 0) - api.nvim_input_mouse('move', '', '', 0, 0, 0) + feed('<MouseMove><1,0>') + feed('<MouseMove><2,0>') + api.nvim_input_mouse('move', '', '', 0, 0, 3) + api.nvim_input_mouse('move', '', '', 0, 0, 4) eq(4, api.nvim_get_var('mouse_move')) eq(0, api.nvim_get_var('mouse_move2')) end) + it('<MouseMove> to same location does not generate events #31103', function() + api.nvim_input_mouse('move', '', '', 0, 0, 3) + api.nvim_set_var('mouse_move', 0) + api.nvim_set_var('mouse_move2', 0) + command('nnoremap <MouseMove> <Cmd>let g:mouse_move += 1<CR>') + command('nnoremap <2-MouseMove> <Cmd>let g:mouse_move2 += 1<CR>') + feed('<MouseMove><3,0>') + feed('<MouseMove><3,0>') + api.nvim_input_mouse('move', '', '', 0, 0, 3) + api.nvim_input_mouse('move', '', '', 0, 0, 3) + eq(0, api.nvim_get_var('mouse_move')) + eq(0, api.nvim_get_var('mouse_move2')) + end) + it('feeding <MouseMove> in Normal mode does not use uninitialized memory #19480', function() feed('<MouseMove>') n.poke_eventloop() |