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 10b57b7..08399b8 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -5023,8 +5023,9 @@
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 2beffa5..e040748 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -1501,7 +1501,7 @@
{
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 @@
// 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 06f3f27..9fcf578 100644
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1166,
+/**/
1165,
/**/
1164,