diff src/normal.c @ 12865:ebb4f6c93598 v8.0.1309

patch 8.0.1309: cannot use 'balloonexpr' in a terminal commit https://github.com/vim/vim/commit/51b0f3701ecb440aa72ab6017c1df6940c0e0f6f Author: Bram Moolenaar <Bram@vim.org> Date: Sat Nov 18 18:52:04 2017 +0100 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.
author Christian Brabandt <cb@256bit.org>
date Sat, 18 Nov 2017 19:00:06 +0100
parents e769c912fcd9
children 1a450ce6980c
line wrap: on
line diff
--- a/src/normal.c
+++ b/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: