forked from aniani/vim
patch 8.0.1309: cannot use 'balloonexpr' in a terminal
Problem: Cannot use 'balloonexpr' in a terminal.
Solution: Add 'balloonevalterm' and add code to handle mouse movements in a
terminal. Initial implementation for Unix with GUI.
This commit is contained in:
18
src/normal.c
18
src/normal.c
@@ -358,6 +358,7 @@ static const struct nv_cmd
|
||||
{K_LEFTDRAG, nv_mouse, 0, 0},
|
||||
{K_LEFTRELEASE, nv_mouse, 0, 0},
|
||||
{K_LEFTRELEASE_NM, nv_mouse, 0, 0},
|
||||
{K_MOUSEMOVE, nv_mouse, 0, 0},
|
||||
{K_MIDDLEMOUSE, nv_mouse, 0, 0},
|
||||
{K_MIDDLEDRAG, nv_mouse, 0, 0},
|
||||
{K_MIDDLERELEASE, nv_mouse, 0, 0},
|
||||
@@ -2396,6 +2397,20 @@ do_mouse(
|
||||
break;
|
||||
}
|
||||
|
||||
if (c == K_MOUSEMOVE)
|
||||
{
|
||||
/* Mouse moved without a button pressed. */
|
||||
#ifdef FEAT_BEVALTERM
|
||||
ui_may_remove_balloon();
|
||||
if (p_bevalterm && !VIsual_active)
|
||||
{
|
||||
profile_setlimit(p_bdlay, &bevalexpr_due);
|
||||
bevalexpr_due_set = TRUE;
|
||||
}
|
||||
#endif
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
#ifdef FEAT_MOUSESHAPE
|
||||
/* May have stopped dragging the status or separator line. The pointer is
|
||||
* most likely still on the status or separator line. */
|
||||
@@ -3843,7 +3858,7 @@ add_to_showcmd(int c)
|
||||
K_LEFTMOUSE_NM, K_LEFTRELEASE_NM,
|
||||
# endif
|
||||
K_IGNORE, K_PS,
|
||||
K_LEFTMOUSE, K_LEFTDRAG, K_LEFTRELEASE,
|
||||
K_LEFTMOUSE, K_LEFTDRAG, K_LEFTRELEASE, K_MOUSEMOVE,
|
||||
K_MIDDLEMOUSE, K_MIDDLEDRAG, K_MIDDLERELEASE,
|
||||
K_RIGHTMOUSE, K_RIGHTDRAG, K_RIGHTRELEASE,
|
||||
K_MOUSEDOWN, K_MOUSEUP, K_MOUSELEFT, K_MOUSERIGHT,
|
||||
@@ -8358,6 +8373,7 @@ nv_g_cmd(cmdarg_T *cap)
|
||||
case K_LEFTMOUSE:
|
||||
case K_LEFTDRAG:
|
||||
case K_LEFTRELEASE:
|
||||
case K_MOUSEMOVE:
|
||||
case K_RIGHTMOUSE:
|
||||
case K_RIGHTDRAG:
|
||||
case K_RIGHTRELEASE:
|
||||
|
||||
Reference in New Issue
Block a user