changeset 16348:5f3a86ba4261 v8.1.1179

patch 8.1.1179: no test for mouse clicks in the fold column commit https://github.com/vim/vim/commit/696d6377289eb7c703263aaabe58134968335c4b Author: Bram Moolenaar <Bram@vim.org> Date: Wed Apr 17 16:33:46 2019 +0200 patch 8.1.1179: no test for mouse clicks in the fold column Problem: No test for mouse clicks in the fold column. Solution: Add a test. (Dominique Pelle, closes https://github.com/vim/vim/issues/4261)
author Bram Moolenaar <Bram@vim.org>
date Wed, 17 Apr 2019 16:45:05 +0200
parents b390b2e66f46
children 4e45c3b55775
files src/testdir/test_termcodes.vim src/version.c
diffstat 2 files changed, 53 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/testdir/test_termcodes.vim
+++ b/src/testdir/test_termcodes.vim
@@ -395,3 +395,54 @@ func Test_xterm_mouse_double_click_to_cr
   let &ttymouse = save_ttymouse
   set mousetime&
 endfunc
+
+func Test_xterm_mouse_click_in_fold_columns()
+  new
+  let save_mouse = &mouse
+  let save_term = &term
+  let save_ttymouse = &ttymouse
+  let save_foldcolumn = &foldcolumn
+  set mouse=a term=xterm foldcolumn=3
+
+  " Create 2 nested folds.
+  call setline(1, range(1, 7))
+  2,6fold
+  norm! zR
+  4,5fold
+  call assert_equal([-1, -1, -1, 4, 4, -1, -1],
+        \           map(range(1, 7), 'foldclosed(v:val)'))
+
+  " Click in "+" of inner fold in foldcolumn should open it.
+  redraw
+  let row = 4
+  let col = 2
+  call MouseLeftClick(row, col)
+  call MouseLeftRelease(row, col)
+  call assert_equal([-1, -1, -1, -1, -1, -1, -1],
+        \           map(range(1, 7), 'foldclosed(v:val)'))
+
+  " Click in "-" of outer fold in foldcolumn should close it.
+  redraw
+  let row = 2
+  let col = 1
+  call MouseLeftClick(row, col)
+  call MouseLeftRelease(row, col)
+  call assert_equal([-1, 2, 2, 2, 2, 2, -1],
+        \           map(range(1, 7), 'foldclosed(v:val)'))
+  norm! zR
+
+  " Click in "|" of inner fold in foldcolumn should close it.
+  redraw
+  let row = 5
+  let col = 2
+  call MouseLeftClick(row, col)
+  call MouseLeftRelease(row, col)
+  call assert_equal([-1, -1, -1, 4, 4, -1, -1],
+        \           map(range(1, 7), 'foldclosed(v:val)'))
+
+  let &foldcolumn = save_foldcolumn
+  let &ttymouse = save_ttymouse
+  let &term = save_term
+  let &mouse = save_mouse
+  bwipe!
+endfunc
--- 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 */
 /**/
+    1179,
+/**/
     1178,
 /**/
     1177,