From ae97b94176062d30ea8c68bb83cde034c5150c78 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar <Bram@vim.org> Date: Thu, 9 Jul 2020 19:16:35 +0200 Subject: [PATCH] patch 8.2.1166: once mouse move events are enabled getchar() returns them Problem: Once mouse move events are enabled getchar() returns them. Solution: Ignore K_MOUSEMOVE in getchar(). (closes #6424) --- runtime/doc/eval.txt | 5 +++-- src/getchar.c | 4 ++-- src/version.c | 2 ++ 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 10b57b7b87..08399b8e0c 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -5023,8 +5023,9 @@ getchar([expr]) *getchar()* When the user clicks a mouse button, the mouse event will be returned. The position can then be found in |v:mouse_col|, |v:mouse_lnum|, |v:mouse_winid| and |v:mouse_win|. - |getmousepos()| can also be used. This example positions the - mouse as it would normally happen: > + |getmousepos()| can also be used. Mouse move events will be + ignored. + This example positions the mouse as it would normally happen: > let c = getchar() if c == "\<LeftMouse>" && v:mouse_win > 0 exe v:mouse_win . "wincmd w" diff --git a/src/getchar.c b/src/getchar.c index 2beffa5784..e040748d66 100644 --- a/src/getchar.c +++ b/src/getchar.c @@ -1501,7 +1501,7 @@ openscript( { update_topline_cursor(); // update cursor position and topline normal_cmd(&oa, FALSE); // execute one command - vpeekc(); // check for end of file + (void)vpeekc(); // check for end of file } while (scriptin[oldcurscript] != NULL); @@ -2045,7 +2045,7 @@ f_getchar(typval_T *argvars, typval_T *rettv) // getchar(0) and char avail: return char n = plain_vgetc(); - if (n == K_IGNORE) + if (n == K_IGNORE || n == K_MOUSEMOVE) continue; break; } diff --git a/src/version.c b/src/version.c index 06f3f27caa..9fcf578ffc 100644 --- a/src/version.c +++ b/src/version.c @@ -754,6 +754,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1166, /**/ 1165, /**/ -- GitLab