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:
@@ -2794,6 +2794,12 @@ do_mouse(
|
|||||||
*/
|
*/
|
||||||
jump_flags = jump_to_mouse(jump_flags,
|
jump_flags = jump_to_mouse(jump_flags,
|
||||||
oap == NULL ? NULL : &(oap->inclusive), which_button);
|
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);
|
moved = (jump_flags & CURSOR_MOVED);
|
||||||
in_status_line = (jump_flags & IN_STATUS_LINE);
|
in_status_line = (jump_flags & IN_STATUS_LINE);
|
||||||
in_sep_line = (jump_flags & IN_SEP_LINE);
|
in_sep_line = (jump_flags & IN_SEP_LINE);
|
||||||
|
14
src/ui.c
14
src/ui.c
@@ -2611,6 +2611,9 @@ jump_to_mouse(
|
|||||||
{
|
{
|
||||||
static int on_status_line = 0; /* #lines below bottom of window */
|
static int on_status_line = 0; /* #lines below bottom of window */
|
||||||
static int on_sep_line = 0; /* on separator right 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_row = -1;
|
||||||
static int prev_col = -1;
|
static int prev_col = -1;
|
||||||
static win_T *dragwin = NULL; /* window being dragged */
|
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
|
/* A click in the window toolbar does not enter another window or
|
||||||
* change Visual highlighting. */
|
* change Visual highlighting. */
|
||||||
winbar_click(wp, col);
|
winbar_click(wp, col);
|
||||||
return IN_OTHER_WIN;
|
in_winbar = TRUE;
|
||||||
|
return IN_OTHER_WIN | MOUSE_WINBAR;
|
||||||
}
|
}
|
||||||
|
in_winbar = FALSE;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -2829,6 +2834,13 @@ retnomove:
|
|||||||
}
|
}
|
||||||
return IN_SEP_LINE; /* Cursor didn't move */
|
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 */
|
else /* keep_window_focus must be TRUE */
|
||||||
{
|
{
|
||||||
/* before moving the cursor for a left click, stop Visual mode */
|
/* before moving the cursor for a left click, stop Visual mode */
|
||||||
|
@@ -761,6 +761,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1138,
|
||||||
/**/
|
/**/
|
||||||
1137,
|
1137,
|
||||||
/**/
|
/**/
|
||||||
|
@@ -1898,6 +1898,7 @@ typedef int sock_T;
|
|||||||
# define CURSOR_MOVED 0x100
|
# define CURSOR_MOVED 0x100
|
||||||
# define MOUSE_FOLD_CLOSE 0x200 /* clicked on '-' in fold column */
|
# define MOUSE_FOLD_CLOSE 0x200 /* clicked on '-' in fold column */
|
||||||
# define MOUSE_FOLD_OPEN 0x400 /* 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() */
|
/* flags for jump_to_mouse() */
|
||||||
# define MOUSE_FOCUS 0x01 /* need to stay in this window */
|
# define MOUSE_FOCUS 0x01 /* need to stay in this window */
|
||||||
|
Reference in New Issue
Block a user