From b26e242dd3d49fbc264a9616979acdacce10eac2 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Fri, 28 Apr 2023 14:00:32 +0800 Subject: [PATCH] vim-patch:8.1.1165: no test for mouse clicks in the terminal tabpage line Problem: No test for mouse clicks in the terminal tabpage line. Solution: Add a test. (Dominique Pelle, closes vim/vim#4247). Also init TabPageIdxs[], in case it's used before a redraw. https://github.com/vim/vim/commit/ca57ab54d759a3e265b19bbe31b57dfed00bbdd0 Co-authored-by: Bram Moolenaar --- test/old/testdir/test_termcodes.vim | 53 +++++++++++++++++++++++++++-- 1 file changed, 51 insertions(+), 2 deletions(-) diff --git a/test/old/testdir/test_termcodes.vim b/test/old/testdir/test_termcodes.vim index 546c5c821c..3ba97b270c 100644 --- a/test/old/testdir/test_termcodes.vim +++ b/test/old/testdir/test_termcodes.vim @@ -133,8 +133,9 @@ func Test_xterm_mouse_drag_statusline() let save_mouse = &mouse let save_term = &term " let save_ttymouse = &ttymouse - " set mouse=a term=xterm - set mouse=a + let save_laststatus = &laststatus + " set mouse=a term=xterm laststatus=2 + set mouse=a laststatus=2 for ttymouse_val in ['sgr'] " exe 'set ttymouse=' . ttymouse_val @@ -163,6 +164,54 @@ func Test_xterm_mouse_drag_statusline() call assert_equal(rowstatusline, winheight(0) + 1) endfor + let &mouse = save_mouse + " let &term = save_term + " let &ttymouse = save_ttymouse + let &laststatus = save_laststatus +endfunc + +func Test_xterm_mouse_click_tab() + let save_mouse = &mouse + let save_term = &term + " let save_ttymouse = &ttymouse + " set mouse=a term=xterm + set mouse=a + let row = 1 + + for ttymouse_val in ['sgr'] + " exe 'set ttymouse=' . ttymouse_val + e Xfoo + tabnew Xbar + + let a = split(execute(':tabs'), "\n") + call assert_equal(['Tab page 1', + \ '# Xfoo', + \ 'Tab page 2', + \ '> Xbar'], a) + + " Test clicking on tab names in the tabline at the top. + let col = 2 + redraw! + call MouseLeftClick(row, col) + call MouseLeftRelease(row, col) + let a = split(execute(':tabs'), "\n") + call assert_equal(['Tab page 1', + \ '> Xfoo', + \ 'Tab page 2', + \ '# Xbar'], a) + + let col = 9 + call MouseLeftClick(row, col) + call MouseLeftRelease(row, col) + let a = split(execute(':tabs'), "\n") + call assert_equal(['Tab page 1', + \ '# Xfoo', + \ 'Tab page 2', + \ '> Xbar'], a) + + %bwipe! + endfor + let &mouse = save_mouse " let &term = save_term " let &ttymouse = save_ttymouse