patch 9.0.0825: cannot drag an entry in the tabpage line
Problem: Cannot drag an entry in the tabpage line.
Solution: Clear dragwin instead of got_click. (closes #11483,
closes #11482)
diff --git a/src/mouse.c b/src/mouse.c
index 40c2159..25e65ed 100644
--- a/src/mouse.c
+++ b/src/mouse.c
@@ -179,18 +179,6 @@
}
#endif
-static int mouse_got_click = FALSE; // got a click some time back
-
-/*
- * Reset the flag that a mouse click was seen. To be called when switching tab
- * page.
- */
- void
-reset_mouse_got_click(void)
-{
- mouse_got_click = FALSE;
-}
-
/*
* Do the appropriate action for the current mouse click in the current mode.
* Not used for Command-line mode.
@@ -236,6 +224,7 @@
int fixindent) // PUT_FIXINDENT if fixing indent necessary
{
static int do_always = FALSE; // ignore 'mouse' setting next time
+ static int got_click = FALSE; // got a click some time back
int which_button; // MOUSE_LEFT, _MIDDLE or _RIGHT
int is_click = FALSE; // If FALSE it's a drag or release event
@@ -347,14 +336,14 @@
// Ignore drag and release events if we didn't get a click.
if (is_click)
- mouse_got_click = TRUE;
+ got_click = TRUE;
else
{
- if (!mouse_got_click) // didn't get click, ignore
+ if (!got_click) // didn't get click, ignore
return FALSE;
- if (!is_drag) // release, reset mouse_got_click
+ if (!is_drag) // release, reset got_click
{
- mouse_got_click = FALSE;
+ got_click = FALSE;
if (in_tab_line)
{
in_tab_line = FALSE;
@@ -371,7 +360,7 @@
if (count > 1)
stuffnumReadbuff(count);
stuffcharReadbuff(Ctrl_T);
- mouse_got_click = FALSE; // ignore drag&release now
+ got_click = FALSE; // ignore drag&release now
return FALSE;
}
@@ -652,7 +641,7 @@
}
# ifdef FEAT_MENU
show_popupmenu();
- mouse_got_click = FALSE; // ignore release events
+ got_click = FALSE; // ignore release events
# endif
return (jump_flags & CURSOR_MOVED) != 0;
#else
@@ -709,7 +698,7 @@
// next mouse click.
if (!is_drag && oap != NULL && oap->op_type != OP_NOP)
{
- mouse_got_click = FALSE;
+ got_click = FALSE;
oap->motion_type = MCHAR;
}
@@ -908,7 +897,7 @@
do_cmdline_cmd((char_u *)".cc");
else // location list window
do_cmdline_cmd((char_u *)".ll");
- mouse_got_click = FALSE; // ignore drag&release now
+ got_click = FALSE; // ignore drag&release now
}
#endif
@@ -920,7 +909,7 @@
if (State & MODE_INSERT)
stuffcharReadbuff(Ctrl_O);
stuffcharReadbuff(Ctrl_RSB);
- mouse_got_click = FALSE; // ignore drag&release now
+ got_click = FALSE; // ignore drag&release now
}
// Shift-Mouse click searches for the next occurrence of the word under
@@ -1513,6 +1502,17 @@
return (p_mousem[0] == 'p');
}
+static win_T *dragwin = NULL; // window being dragged
+
+/*
+ * Reset the window being dragged. To be called when switching tab page.
+ */
+ void
+reset_dragwin(void)
+{
+ dragwin = NULL;
+}
+
/*
* Move the cursor to the specified row and column on the screen.
* Change current window if necessary. Returns an integer with the
@@ -1556,7 +1556,6 @@
#endif
static int prev_row = -1;
static int prev_col = -1;
- static win_T *dragwin = NULL; // window being dragged
static int did_drag = FALSE; // drag was noticed
win_T *wp, *old_curwin;