Permalink
Browse files

patch 8.0.1323: mouse events in a terminal window may cause endless loop

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().
  • Loading branch information...
brammool committed Nov 20, 2017
1 parent 5bbef31 commit 73675fbc4810470f8935f05a3c16c14e0d5e737f
Showing with 7 additions and 3 deletions.
  1. +3 −1 src/normal.c
  2. +2 −2 src/terminal.c
  3. +2 −0 src/version.c
View
@@ -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))
View
@@ -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 */
View
@@ -771,6 +771,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1323,
/**/
1322,
/**/

0 comments on commit 73675fb

Please sign in to comment.