To: vim_dev@googlegroups.com Subject: Patch 8.1.1167 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.1.1167 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) Files: src/testdir/test_termcodes.vim *** ../vim-8.1.1166/src/testdir/test_termcodes.vim 2019-04-13 14:53:10.886456655 +0200 --- src/testdir/test_termcodes.vim 2019-04-13 22:10:53.844130253 +0200 *************** *** 119,158 **** 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 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) bwipe! endfor --- 119,156 ---- let row = rowseparator let col = 1 ! " 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 bwipe! " Split vertically and test dragging the vertical window separator. vsplit let colseparator = winwidth(0) + 1 let row = 1 let col = colseparator + " 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,227 **** " 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") --- 219,225 ---- " 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") *************** *** 241,246 **** --- 239,289 ---- %bwipe! endfor + + let &mouse = save_mouse + 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 *** ../vim-8.1.1166/src/version.c 2019-04-13 20:38:53.745034749 +0200 --- src/version.c 2019-04-13 22:12:41.423186715 +0200 *************** *** 773,774 **** --- 773,776 ---- { /* Add new patch number below this line */ + /**/ + 1167, /**/ -- Women are probably the main cause of free software starvation. /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///