From: Bram Moolenaar Date: Thu, 9 Jul 2020 17:16:35 +0000 (+0200) Subject: patch 8.2.1166: once mouse move events are enabled getchar() returns them X-Git-Tag: v8.2.1166 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ae97b94176062d30ea8c68bb83cde034c5150c78;p=vim 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) --- diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 10b57b7b8..08399b8e0 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 == "\" && v:mouse_win > 0 exe v:mouse_win . "wincmd w" diff --git a/src/getchar.c b/src/getchar.c index 2beffa578..e040748d6 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 06f3f27ca..9fcf578ff 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, /**/