summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2021-06-03 22:11:08 +0200
committerBram Moolenaar <Bram@vim.org>2021-06-03 22:11:08 +0200
commit4f3c57f7980592b25f483e5953799c010a8ae196 (patch)
treeff81c84567282ba71ffc4ac0eb566915e154efdd
parent5072b47a223fb044041b8e7db59a17b3b1d8a625 (diff)
patch 8.2.2932: select mode test failsv8.2.2932
Problem: Select mode test fails. Solution: Do not always reset the held mouse button.
-rw-r--r--src/mouse.c10
-rw-r--r--src/normal.c14
-rw-r--r--src/proto/normal.pro1
-rw-r--r--src/version.c2
4 files changed, 18 insertions, 9 deletions
diff --git a/src/mouse.c b/src/mouse.c
index f1c1aabbc8..c17e26a3d6 100644
--- a/src/mouse.c
+++ b/src/mouse.c
@@ -477,7 +477,7 @@ do_mouse(
if ((mod_mask & MOD_MASK_MULTI_CLICK) == MOD_MASK_2CLICK)
{
// double click opens new page
- end_visual_mode();
+ end_visual_mode_keep_button();
tabpage_new();
tabpage_move(c1 == 0 ? 9999 : c1 - 1);
}
@@ -489,7 +489,7 @@ do_mouse(
// It's like clicking on the status line of a window.
if (curwin != old_curwin)
- end_visual_mode();
+ end_visual_mode_keep_button();
}
}
else
@@ -1568,7 +1568,7 @@ retnomove:
#endif
if (flags & MOUSE_MAY_STOP_VIS)
{
- end_visual_mode();
+ end_visual_mode_keep_button();
redraw_curbuf_later(INVERTED); // delete the inversion
}
#if defined(FEAT_CMDWIN) && defined(FEAT_CLIPBOARD)
@@ -1717,7 +1717,7 @@ retnomove:
#endif
&& (flags & MOUSE_MAY_STOP_VIS))))
{
- end_visual_mode();
+ end_visual_mode_keep_button();
redraw_curbuf_later(INVERTED); // delete the inversion
}
#ifdef FEAT_CMDWIN
@@ -1821,7 +1821,7 @@ retnomove:
// before moving the cursor for a left click, stop Visual mode
if (flags & MOUSE_MAY_STOP_VIS)
{
- end_visual_mode();
+ end_visual_mode_keep_button();
redraw_curbuf_later(INVERTED); // delete the inversion
}
diff --git a/src/normal.c b/src/normal.c
index f8ec8e9ce3..c4c167935e 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -1350,11 +1350,18 @@ call_yank_do_autocmd(int regname)
/*
* End Visual mode.
- * This function should ALWAYS be called to end Visual mode, except from
- * do_pending_operator().
+ * This function or the next should ALWAYS be called to end Visual mode, except
+ * from do_pending_operator().
*/
void
-end_visual_mode(void)
+end_visual_mode()
+{
+ end_visual_mode_keep_button();
+ reset_held_button();
+}
+
+ void
+end_visual_mode_keep_button()
{
#ifdef FEAT_CLIPBOARD
/*
@@ -1380,7 +1387,6 @@ end_visual_mode(void)
#endif
VIsual_active = FALSE;
- reset_held_button();
setmouse();
mouse_dragging = 0;
diff --git a/src/proto/normal.pro b/src/proto/normal.pro
index a1e31b341d..30f360b935 100644
--- a/src/proto/normal.pro
+++ b/src/proto/normal.pro
@@ -3,6 +3,7 @@ void init_normal_cmds(void);
void normal_cmd(oparg_T *oap, int toplevel);
void check_visual_highlight(void);
void end_visual_mode(void);
+void end_visual_mode_keep_button(void);
void reset_VIsual_and_resel(void);
void reset_VIsual(void);
void restore_visual_mode(void);
diff --git a/src/version.c b/src/version.c
index 57a4dcd263..5ebcfcb07d 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 2932,
+/**/
2931,
/**/
2930,