summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2017-11-20 21:49:19 +0100
committerBram Moolenaar <Bram@vim.org>2017-11-20 21:49:19 +0100
commit73675fbc4810470f8935f05a3c16c14e0d5e737f (patch)
tree54ed1d0e261cac4dc8d916a903cece9690a70871
parent5bbef3194984f175eb12b6efaa04c49a42ab58f2 (diff)
patch 8.0.1323: mouse events in a terminal window may cause endless loopv8.0.1323
Problem: Mouse events in a terminal window may cause endless loop. Solution: Adjust position computation. Don't stuff a mouse event when coming from normal_cmd().
-rw-r--r--src/normal.c4
-rw-r--r--src/terminal.c4
-rw-r--r--src/version.c2
3 files changed, 7 insertions, 3 deletions
diff --git a/src/normal.c b/src/normal.c
index b385c0d4d6..fb0129aec7 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -4633,7 +4633,9 @@ nv_mousescroll(cmdarg_T *cap)
{
# ifdef FEAT_TERMINAL
if (term_use_loop())
- send_keys_to_term(curbuf->b_term, cap->cmdchar, TRUE);
+ /* This window is a terminal window, send the mouse event there.
+ * Set "typed" to FALSE to avoid an endless loop. */
+ send_keys_to_term(curbuf->b_term, cap->cmdchar, FALSE);
else
# endif
if (mod_mask & (MOD_MASK_SHIFT | MOD_MASK_CTRL))
diff --git a/src/terminal.c b/src/terminal.c
index f1b4313ad8..a4caa42eda 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -1302,9 +1302,9 @@ send_keys_to_term(term_T *term, int c, int typed)
case K_MOUSELEFT:
case K_MOUSERIGHT:
if (mouse_row < W_WINROW(curwin)
- || mouse_row >= (W_WINROW(curwin) + curwin->w_height)
+ || mouse_row > (W_WINROW(curwin) + curwin->w_height)
|| mouse_col < curwin->w_wincol
- || mouse_col >= W_ENDCOL(curwin)
+ || mouse_col > W_ENDCOL(curwin)
|| dragging_outside)
{
/* click or scroll outside the current window */
diff --git a/src/version.c b/src/version.c
index de5175fd38..bbb5765949 100644
--- a/src/version.c
+++ b/src/version.c
@@ -772,6 +772,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1323,
+/**/
1322,
/**/
1321,