Mercurial > vim
changeset 28883:d5436dbdd082 v8.2.4964
patch 8.2.4964: MS-Windows GUI: mouse event test is flaky
Commit: https://github.com/vim/vim/commit/3b675c276c71472022b684b7b1dec213824d3104
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon May 16 13:34:44 2022 +0100
patch 8.2.4964: MS-Windows GUI: mouse event test is flaky
Problem: MS-Windows GUI: mouse event test is flaky.
Solution: Add a short delay after generating a mouse event.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 16 May 2022 14:45:03 +0200 |
parents | ae2f1551a6dc |
children | 92795eafa0d6 |
files | src/testdir/test_gui.vim src/version.c |
diffstat | 2 files changed, 33 insertions(+), 28 deletions(-) [+] |
line wrap: on
line diff
--- a/src/testdir/test_gui.vim +++ b/src/testdir/test_gui.vim @@ -1198,6 +1198,17 @@ func Test_gui_mouse_event() set mousemodel& endfunc +" Move the mouse to the top-left in preparation for mouse events +func PrepareForMouseEvent(args) + call extend(a:args, #{row: 1, col:1}) + call test_gui_event('mouse', a:args) + call feedkeys('', 'Lx!') + " on MS-Windows the event may have a slight delay + if has('win32') + sleep 20m + endif +endfunc + func Test_gui_mouse_move_event() let args = #{move: 1, button: 0, multiclick: 0, modifiers: 0} @@ -1205,67 +1216,59 @@ func Test_gui_mouse_move_event() set mousemev& call assert_false(&mousemev) - let n_event = 0 - nnoremap <special> <MouseMove> :let n_event += 1<CR> + let g:n_event = 0 + nnoremap <special> <MouseMove> :let g:n_event += 1<CR> " start at mouse pos (1,1), clear counter - call extend(args, #{row: 1, col:1}) - call test_gui_event('mouse', args) - call feedkeys('', 'Lx!') - let n_event = 0 + call PrepareForMouseEvent(args) + let g:n_event = 0 - call extend(args, #{row: 30, col:300}) + call extend(args, #{row: 30, col: 300}) call test_gui_event('mouse', args) call feedkeys('', 'Lx!') - call extend(args, #{row: 100, col:300}) + call extend(args, #{row: 100, col: 300}) call test_gui_event('mouse', args) call feedkeys('', 'Lx!') " no events since mousemev off - call assert_equal(0, n_event) + call assert_equal(0, g:n_event) " turn on mouse events and try the same thing set mousemev - call extend(args, #{row: 1, col:1}) - call test_gui_event('mouse', args) - call feedkeys('', 'Lx!') - let n_event = 0 + call PrepareForMouseEvent(args) + let g:n_event = 0 - call extend(args, #{row: 30, col:300}) + call extend(args, #{row: 30, col: 300}) call test_gui_event('mouse', args) call feedkeys('', 'Lx!') - call extend(args, #{row: 100, col:300}) + call extend(args, #{row: 100, col: 300}) call test_gui_event('mouse', args) call feedkeys('', 'Lx!') - call assert_equal(2, n_event) + call assert_equal(2, g:n_event) " wiggle the mouse around, shouldn't get events - call extend(args, #{row: 1, col:1}) - call test_gui_event('mouse', args) - call feedkeys('', 'Lx!') - let n_event = 0 + call PrepareForMouseEvent(args) + let g:n_event = 0 - call extend(args, #{row: 1, col:2}) + call extend(args, #{row: 1, col: 2}) call test_gui_event('mouse', args) call feedkeys('', 'Lx!') - call extend(args, #{row: 2, col:2}) + call extend(args, #{row: 2, col: 2}) call test_gui_event('mouse', args) call feedkeys('', 'Lx!') - call extend(args, #{row: 2, col:1}) + call extend(args, #{row: 2, col: 1}) call test_gui_event('mouse', args) call feedkeys('', 'Lx!') - call extend(args, #{row: 1, col:1}) - call test_gui_event('mouse', args) - call feedkeys('', 'Lx!') + call PrepareForMouseEvent(args) + call assert_equal(0, g:n_event) - call assert_equal(0, n_event) - + unlet g:n_event unmap <MouseMove> set mousemev& endfunc