diff options
author | Bram Moolenaar <Bram@vim.org> | 2021-06-03 22:11:08 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-06-03 22:11:08 +0200 |
commit | 4f3c57f7980592b25f483e5953799c010a8ae196 (patch) | |
tree | ff81c84567282ba71ffc4ac0eb566915e154efdd | |
parent | 5072b47a223fb044041b8e7db59a17b3b1d8a625 (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.c | 10 | ||||
-rw-r--r-- | src/normal.c | 14 | ||||
-rw-r--r-- | src/proto/normal.pro | 1 | ||||
-rw-r--r-- | src/version.c | 2 |
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, |