1
0
forked from aniani/vim

patch 8.0.1138: click in window toolbar starts Visual mode

Problem:    Click in window toolbar starts Visual mode.
Solution:   Add the MOUSE_WINBAR flag.
This commit is contained in:
Bram Moolenaar
2017-09-23 15:08:17 +02:00
parent e745d75c3e
commit eb163d73b1
4 changed files with 22 additions and 1 deletions

View File

@@ -2794,6 +2794,12 @@ do_mouse(
*/
jump_flags = jump_to_mouse(jump_flags,
oap == NULL ? NULL : &(oap->inclusive), which_button);
#ifdef FEAT_MENU
/* A click in the window toolbar has no side effects. */
if (jump_flags & MOUSE_WINBAR)
return FALSE;
#endif
moved = (jump_flags & CURSOR_MOVED);
in_status_line = (jump_flags & IN_STATUS_LINE);
in_sep_line = (jump_flags & IN_SEP_LINE);

View File

@@ -2611,6 +2611,9 @@ jump_to_mouse(
{
static int on_status_line = 0; /* #lines below bottom of window */
static int on_sep_line = 0; /* on separator right of window */
#ifdef FEAT_MENU
static int in_winbar = FALSE;
#endif
static int prev_row = -1;
static int prev_col = -1;
static win_T *dragwin = NULL; /* window being dragged */
@@ -2699,8 +2702,10 @@ retnomove:
/* A click in the window toolbar does not enter another window or
* change Visual highlighting. */
winbar_click(wp, col);
return IN_OTHER_WIN;
in_winbar = TRUE;
return IN_OTHER_WIN | MOUSE_WINBAR;
}
in_winbar = FALSE;
#endif
/*
@@ -2829,6 +2834,13 @@ retnomove:
}
return IN_SEP_LINE; /* Cursor didn't move */
}
#ifdef FEAT_MENU
else if (in_winbar)
{
/* After a click on the window toolbar don't start Visual mode. */
return IN_OTHER_WIN | MOUSE_WINBAR;
}
#endif
else /* keep_window_focus must be TRUE */
{
/* before moving the cursor for a left click, stop Visual mode */

View File

@@ -761,6 +761,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1138,
/**/
1137,
/**/

View File

@@ -1898,6 +1898,7 @@ typedef int sock_T;
# define CURSOR_MOVED 0x100
# define MOUSE_FOLD_CLOSE 0x200 /* clicked on '-' in fold column */
# define MOUSE_FOLD_OPEN 0x400 /* clicked on '+' in fold column */
# define MOUSE_WINBAR 0x800 /* in window toolbar */
/* flags for jump_to_mouse() */
# define MOUSE_FOCUS 0x01 /* need to stay in this window */