patch 8.2.2932: select mode test fails

Problem:    Select mode test fails.
Solution:   Do not always reset the held mouse button.
diff --git a/src/mouse.c b/src/mouse.c
index f1c1aab..c17e26a 100644
--- a/src/mouse.c
+++ b/src/mouse.c
@@ -477,7 +477,7 @@
 		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 @@
 
 		    // 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 @@
 #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 @@
 #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 @@
 	// 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 f8ec8e9..c4c1679 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -1350,11 +1350,18 @@
 
 /*
  * 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 @@
 #endif
 
     VIsual_active = FALSE;
-    reset_held_button();
     setmouse();
     mouse_dragging = 0;
 
diff --git a/src/proto/normal.pro b/src/proto/normal.pro
index a1e31b3..30f360b 100644
--- a/src/proto/normal.pro
+++ b/src/proto/normal.pro
@@ -3,6 +3,7 @@
 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 57a4dcd..5ebcfcb 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2932,
+/**/
     2931,
 /**/
     2930,