mirror of
https://github.com/vim/vim.git
synced 2025-07-04 23:07:33 -04:00
patch 8.1.1244: no tests for CTRL-mouse-click
Problem: No tests for CTRL-mouse-click. Solution: Add a few tests. (Dominique Pelle, closes #4323)
This commit is contained in:
parent
26f0cb145a
commit
1ee36d6ff5
@ -32,6 +32,16 @@ func MouseMiddleClick(row, col)
|
||||
call TerminalEscapeCode(0x21, 1, a:row, a:col, 'M')
|
||||
endfunc
|
||||
|
||||
func MouseCtrlLeftClick(row, col)
|
||||
let ctrl = 0x10
|
||||
call TerminalEscapeCode(0x20 + ctrl, 0 + ctrl, a:row, a:col, 'M')
|
||||
endfunc
|
||||
|
||||
func MouseCtrlRightClick(row, col)
|
||||
let ctrl = 0x10
|
||||
call TerminalEscapeCode(0x22 + ctrl, 2 + ctrl, a:row, a:col, 'M')
|
||||
endfunc
|
||||
|
||||
func MouseLeftRelease(row, col)
|
||||
call TerminalEscapeCode(0x23, 3, a:row, a:col, 'm')
|
||||
endfunc
|
||||
@ -40,6 +50,10 @@ func MouseMiddleRelease(row, col)
|
||||
call TerminalEscapeCode(0x23, 3, a:row, a:col, 'm')
|
||||
endfunc
|
||||
|
||||
func MouseRightRelease(row, col)
|
||||
call TerminalEscapeCode(0x23, 3, a:row, a:col, 'm')
|
||||
endfunc
|
||||
|
||||
func MouseLeftDrag(row, col)
|
||||
call TerminalEscapeCode(0x43, 0x20, a:row, a:col, 'M')
|
||||
endfunc
|
||||
@ -62,7 +76,7 @@ func Test_xterm_mouse_left_click()
|
||||
|
||||
for ttymouse_val in ['xterm2', 'sgr']
|
||||
let msg = 'ttymouse=' .. ttymouse_val
|
||||
exe 'set ttymouse=' . ttymouse_val
|
||||
exe 'set ttymouse=' .. ttymouse_val
|
||||
go
|
||||
call assert_equal([0, 1, 1, 0], getpos('.'), msg)
|
||||
let row = 2
|
||||
@ -78,6 +92,39 @@ func Test_xterm_mouse_left_click()
|
||||
bwipe!
|
||||
endfunc
|
||||
|
||||
" Test that <C-LeftMouse> jumps to help tag and <C-RightMouse> jumps back.
|
||||
func Test_xterm_mouse_ctrl_click()
|
||||
let save_mouse = &mouse
|
||||
let save_term = &term
|
||||
let save_ttymouse = &ttymouse
|
||||
set mouse=a term=xterm
|
||||
|
||||
for ttymouse_val in ['xterm2', 'sgr']
|
||||
let msg = 'ttymouse=' .. ttymouse_val
|
||||
exe 'set ttymouse=' .. ttymouse_val
|
||||
help
|
||||
/usr_02.txt
|
||||
norm! zt
|
||||
let row = 1
|
||||
let col = 1
|
||||
call MouseCtrlLeftClick(row, col)
|
||||
call MouseLeftRelease(row, col)
|
||||
call assert_match('usr_02.txt$', bufname('%'), msg)
|
||||
call assert_equal('*usr_02.txt*', expand('<cWORD>'))
|
||||
|
||||
call MouseCtrlRightClick(row, col)
|
||||
call MouseLeftRelease(row, col)
|
||||
call assert_match('help.txt$', bufname('%'), msg)
|
||||
call assert_equal('|usr_02.txt|', expand('<cWORD>'))
|
||||
|
||||
helpclose
|
||||
endfor
|
||||
|
||||
let &mouse = save_mouse
|
||||
let &term = save_term
|
||||
let &ttymouse = save_ttymouse
|
||||
endfunc
|
||||
|
||||
func Test_xterm_mouse_middle_click()
|
||||
if !WorkingClipboard()
|
||||
throw 'Skipped: No working clipboard'
|
||||
@ -93,7 +140,7 @@ func Test_xterm_mouse_middle_click()
|
||||
|
||||
for ttymouse_val in ['xterm2', 'sgr']
|
||||
let msg = 'ttymouse=' .. ttymouse_val
|
||||
exe 'set ttymouse=' . ttymouse_val
|
||||
exe 'set ttymouse=' .. ttymouse_val
|
||||
call setline(1, ['123456789', '123456789'])
|
||||
|
||||
" Middle-click in the middle of the line pastes text where clicked.
|
||||
@ -134,7 +181,7 @@ func Test_xterm_mouse_wheel()
|
||||
|
||||
for ttymouse_val in ['xterm2', 'sgr']
|
||||
let msg = 'ttymouse=' .. ttymouse_val
|
||||
exe 'set ttymouse=' . ttymouse_val
|
||||
exe 'set ttymouse=' .. ttymouse_val
|
||||
go
|
||||
call assert_equal(1, line('w0'), msg)
|
||||
call assert_equal([0, 1, 1, 0], getpos('.'), msg)
|
||||
@ -170,7 +217,7 @@ func Test_xterm_mouse_drag_window_separator()
|
||||
|
||||
for ttymouse_val in ['xterm2', 'sgr']
|
||||
let msg = 'ttymouse=' .. ttymouse_val
|
||||
exe 'set ttymouse=' . ttymouse_val
|
||||
exe 'set ttymouse=' .. ttymouse_val
|
||||
|
||||
" Split horizontally and test dragging the horizontal window separator.
|
||||
split
|
||||
@ -227,7 +274,7 @@ func Test_xterm_mouse_drag_statusline()
|
||||
|
||||
for ttymouse_val in ['xterm2', 'sgr']
|
||||
let msg = 'ttymouse=' .. ttymouse_val
|
||||
exe 'set ttymouse=' . ttymouse_val
|
||||
exe 'set ttymouse=' .. ttymouse_val
|
||||
|
||||
call assert_equal(1, &cmdheight, msg)
|
||||
let rowstatusline = winheight(0) + 1
|
||||
@ -268,7 +315,7 @@ func Test_xterm_mouse_click_tab()
|
||||
|
||||
for ttymouse_val in ['xterm2', 'sgr']
|
||||
let msg = 'ttymouse=' .. ttymouse_val
|
||||
exe 'set ttymouse=' . ttymouse_val
|
||||
exe 'set ttymouse=' .. ttymouse_val
|
||||
e Xfoo
|
||||
tabnew Xbar
|
||||
|
||||
@ -320,7 +367,7 @@ func Test_xterm_mouse_click_X_to_close_tab()
|
||||
continue
|
||||
endif
|
||||
let msg = 'ttymouse=' .. ttymouse_val
|
||||
exe 'set ttymouse=' . ttymouse_val
|
||||
exe 'set ttymouse=' .. ttymouse_val
|
||||
e Xtab1
|
||||
tabnew Xtab2
|
||||
tabnew Xtab3
|
||||
@ -362,7 +409,7 @@ func Test_xterm_mouse_drag_to_move_tab()
|
||||
|
||||
for ttymouse_val in ['xterm2', 'sgr']
|
||||
let msg = 'ttymouse=' .. ttymouse_val
|
||||
exe 'set ttymouse=' . ttymouse_val
|
||||
exe 'set ttymouse=' .. ttymouse_val
|
||||
e Xtab1
|
||||
tabnew Xtab2
|
||||
|
||||
@ -411,7 +458,7 @@ func Test_xterm_mouse_double_click_to_create_tab()
|
||||
|
||||
for ttymouse_val in ['xterm2', 'sgr']
|
||||
let msg = 'ttymouse=' .. ttymouse_val
|
||||
exe 'set ttymouse=' . ttymouse_val
|
||||
exe 'set ttymouse=' .. ttymouse_val
|
||||
e Xtab1
|
||||
tabnew Xtab2
|
||||
|
||||
|
@ -767,6 +767,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1244,
|
||||
/**/
|
||||
1243,
|
||||
/**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user