patch 9.1.1429: dragging outside the tabpanel changes tabpagenr
Problem: dragging outside the tabpanel changes tabpagenr (char101)
Solution: set in_tab_line and in_tabpanel variables (Hirohito Higashi)
fixes: #17385
closes: #17431
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/src/mouse.c b/src/mouse.c
index 0d05e64..dcb6cbe 100644
--- a/src/mouse.c
+++ b/src/mouse.c
@@ -337,7 +337,13 @@
// Ignore drag and release events if we didn't get a click.
if (is_click)
+ {
got_click = TRUE;
+ in_tab_line = FALSE;
+#if defined(FEAT_TABPANEL)
+ in_tabpanel = FALSE;
+#endif
+ }
else
{
if (!got_click) // didn't get click, ignore
diff --git a/src/testdir/test_tabpanel.vim b/src/testdir/test_tabpanel.vim
index c3288f8..0d729a8 100644
--- a/src/testdir/test_tabpanel.vim
+++ b/src/testdir/test_tabpanel.vim
@@ -92,6 +92,13 @@
call feedkeys("\<LeftMouse>", 'xt')
call assert_equal(3, tabpagenr())
+ " Confirm that tabpagenr() does not change when dragging outside the tabpanel
+ call test_setmouse(3, 30)
+ call feedkeys("\<LeftMouse>", 'xt')
+ call test_setmouse(1, 30)
+ call feedkeys("\<LeftDrag>", 'xt')
+ call assert_equal(3, tabpagenr())
+
call feedkeys("\<LeftMouse>", 'xt')
call test_setmouse(2, 3)
let pos = getmousepos()
diff --git a/src/version.c b/src/version.c
index 7c3c4f1..5e34826 100644
--- a/src/version.c
+++ b/src/version.c
@@ -710,6 +710,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1429,
+/**/
1428,
/**/
1427,