# HG changeset patch # User Bram Moolenaar # Date 1555186504 -7200 # Node ID 6b2412d0509f1b7006bee4f734ec2e151e337f70 # Parent b8fcb50170582251e1286a60e5ae2262c0ff216e patch 8.1.1167: no test for closing tab by click in tabline commit https://github.com/vim/vim/commit/39f76c6ac0f5e07a0e608ddf920a67702ec83824 Author: Bram Moolenaar Date: Sat Apr 13 22:13:23 2019 +0200 patch 8.1.1167: no test for closing tab by click in tabline Problem: No test for closing tab by click in tabline. Solution: Add a test. Also fix that dragging window separator could fail in a large terminal. (Dominique Pelle, closes #4253) diff --git a/src/testdir/test_termcodes.vim b/src/testdir/test_termcodes.vim --- a/src/testdir/test_termcodes.vim +++ b/src/testdir/test_termcodes.vim @@ -119,40 +119,38 @@ func Test_xterm_mouse_drag_window_separa let row = rowseparator let col = 1 - if ttymouse_val ==# 'xterm' && row > 223 - " When 'ttymouse' is 'xterm', row/col bigger than 223 are not supported. - continue + " When 'ttymouse' is 'xterm', row/col bigger than 223 are not supported. + if ttymouse_val !=# 'xterm' || row <= 223 + call MouseLeftClick(row, col) + let row -= 1 + call MouseLeftDrag(row, col) + call assert_equal(rowseparator - 1, winheight(0) + 1) + let row += 1 + call MouseLeftDrag(row, col) + call assert_equal(rowseparator, winheight(0) + 1) + call MouseLeftRelease(row, col) + call assert_equal(rowseparator, winheight(0) + 1) endif - - call MouseLeftClick(row, col) - - let row -= 1 - call MouseLeftDrag(row, col) - call assert_equal(rowseparator - 1, winheight(0) + 1) - let row += 1 - call MouseLeftDrag(row, col) - call assert_equal(rowseparator, winheight(0) + 1) - call MouseLeftRelease(row, col) - call assert_equal(rowseparator, winheight(0) + 1) - bwipe! " Split vertically and test dragging the vertical window separator. vsplit let colseparator = winwidth(0) + 1 - let row = 1 let col = colseparator - call MouseLeftClick(row, col) - let col -= 1 - call MouseLeftDrag(row, col) - call assert_equal(colseparator - 1, winwidth(0) + 1) - let col += 1 - call MouseLeftDrag(row, col) - call assert_equal(colseparator, winwidth(0) + 1) - call MouseLeftRelease(row, col) - call assert_equal(colseparator, winwidth(0) + 1) + " When 'ttymouse' is 'xterm', row/col bigger than 223 are not supported. + if ttymouse_val !=# 'xterm' || col <= 223 + call MouseLeftClick(row, col) + let col -= 1 + call MouseLeftDrag(row, col) + call assert_equal(colseparator - 1, winwidth(0) + 1) + let col += 1 + call MouseLeftDrag(row, col) + call assert_equal(colseparator, winwidth(0) + 1) + call MouseLeftRelease(row, col) + call assert_equal(colseparator, winwidth(0) + 1) + endif bwipe! endfor @@ -221,7 +219,7 @@ func Test_xterm_mouse_click_tab() " Test clicking on tab names in the tabline at the top. let col = 2 - redraw! + redraw call MouseLeftClick(row, col) call MouseLeftRelease(row, col) let a = split(execute(':tabs'), "\n") @@ -246,3 +244,48 @@ func Test_xterm_mouse_click_tab() let &term = save_term let &ttymouse = save_ttymouse endfunc + +func Test_xterm_mouse_click_X_to_close_tab() + let save_mouse = &mouse + let save_term = &term + let save_ttymouse = &ttymouse + set mouse=a term=xterm + let row = 1 + let col = &columns + + for ttymouse_val in ['xterm', 'sgr'] + if ttymouse_val ==# 'xterm' && col > 223 + " When 'ttymouse' is 'xterm', row/col bigger than 223 are not supported. + continue + endif + exe 'set ttymouse=' . ttymouse_val + e Xtab1 + tabnew Xtab2 + tabnew Xtab3 + tabn 2 + + let a = split(execute(':tabs'), "\n") + call assert_equal(['Tab page 1', + \ ' Xtab1', + \ 'Tab page 2', + \ '> Xtab2', + \ 'Tab page 3', + \ ' Xtab3'], a) + + " Click on "X" in tabline to close current tab i.e. Xtab2. + redraw + call MouseLeftClick(row, col) + call MouseLeftRelease(row, col) + let a = split(execute(':tabs'), "\n") + call assert_equal(['Tab page 1', + \ ' Xtab1', + \ 'Tab page 2', + \ '> Xtab3'], a) + + %bwipe! + endfor + + let &mouse = save_mouse + let &term = save_term + let &ttymouse = save_ttymouse +endfunc diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -772,6 +772,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1167, +/**/ 1166, /**/ 1165,