From 000129201c54d4ba391f7473d0c183f000246c3e Mon Sep 17 00:00:00 2001 From: errael Date: Thu, 7 Nov 2024 00:21:28 -0800 Subject: perf(mouse): only generate for a new cell positon (#31103) Problem: Can receive dozens of events for same cell position. #30965 Solution: Leverage check_multiclick() to detect if cell position is unchanged. --- test/functional/ui/mouse_spec.lua | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) (limited to 'test/functional/ui/mouse_spec.lua') 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(' is not translated into multiclicks and can be mapped', function() + it(' to different locations can be mapped', function() api.nvim_set_var('mouse_move', 0) api.nvim_set_var('mouse_move2', 0) command('nnoremap let g:mouse_move += 1') command('nnoremap <2-MouseMove> let g:mouse_move2 += 1') - feed('<0,0>') - feed('<0,0>') - api.nvim_input_mouse('move', '', '', 0, 0, 0) - api.nvim_input_mouse('move', '', '', 0, 0, 0) + feed('<1,0>') + feed('<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(' 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 let g:mouse_move += 1') + command('nnoremap <2-MouseMove> let g:mouse_move2 += 1') + feed('<3,0>') + feed('<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 in Normal mode does not use uninitialized memory #19480', function() feed('') n.poke_eventloop() -- cgit