diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-11-15 23:02:48 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-15 23:02:48 +0800 |
commit | c70d90dbfdf67bb009d2976a5d0760be4010e533 (patch) | |
tree | f303d4ac87a0fe278f939b17b9470bb3a21ed4ae /src/nvim/testdir | |
parent | 211c568e6452e62b119ac4b987ff47b9174ec9ad (diff) | |
download | rneovim-c70d90dbfdf67bb009d2976a5d0760be4010e533.tar.gz rneovim-c70d90dbfdf67bb009d2976a5d0760be4010e533.tar.bz2 rneovim-c70d90dbfdf67bb009d2976a5d0760be4010e533.zip |
vim-patch:9.0.0884: mouse shape remains in op-pending mode after failed change (#21066)
Problem: Mouse shape remains in op-pending mode after failed change.
Solution: Reset finish_op and restore it. (closes vim/vim#11545)
https://github.com/vim/vim/commit/cdeb65729d96c90320b9009e583ade305c396f29
Diffstat (limited to 'src/nvim/testdir')
-rw-r--r-- | src/nvim/testdir/test_normal.vim | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/nvim/testdir/test_normal.vim b/src/nvim/testdir/test_normal.vim index 0d75644920..e5756bd505 100644 --- a/src/nvim/testdir/test_normal.vim +++ b/src/nvim/testdir/test_normal.vim @@ -3713,4 +3713,37 @@ func Test_normal_count_out_of_range() bwipe! endfunc +" Test that mouse shape is restored to Normal mode after failed "c" operation. +func Test_mouse_shape_after_failed_change() + CheckFeature mouseshape + CheckCanRunGui + + let lines =<< trim END + set mouseshape+=o:busy + setlocal nomodifiable + let g:mouse_shapes = [] + + func SaveMouseShape(timer) + let g:mouse_shapes += [getmouseshape()] + endfunc + + func SaveAndQuit(timer) + call writefile(g:mouse_shapes, 'Xmouseshapes') + quit + endfunc + + call timer_start(50, {_ -> feedkeys('c')}) + call timer_start(100, 'SaveMouseShape') + call timer_start(150, {_ -> feedkeys('c')}) + call timer_start(200, 'SaveMouseShape') + call timer_start(250, 'SaveAndQuit') + END + call writefile(lines, 'Xmouseshape.vim', 'D') + call RunVim([], [], "-g -S Xmouseshape.vim") + sleep 300m + call assert_equal(['busy', 'arrow'], readfile('Xmouseshapes')) + + call delete('Xmouseshapes') +endfunc + " vim: shiftwidth=2 sts=2 expandtab |