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 vim/vim#6424)
ae97b94176
This commit is contained in:
Jan Edmund Lazo 2021-05-06 00:23:18 -04:00
parent 51403d6d41
commit f70ecbd4dc
No known key found for this signature in database
GPG Key ID: 64915E6E9F735B15
3 changed files with 8 additions and 4 deletions

View File

@ -4316,8 +4316,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|. This
example positions the mouse as it would normally happen: >
|v:mouse_lnum|, |v:mouse_winid| and |v:mouse_win|.
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"

View File

@ -3016,7 +3016,10 @@ static void f_getchar(typval_T *argvars, typval_T *rettv, FunPtr fptr)
n = safe_vgetc();
}
if (n == K_IGNORE || n == K_VER_SCROLLBAR || n == K_HOR_SCROLLBAR) {
if (n == K_IGNORE
|| n == K_MOUSEMOVE
|| n == K_VER_SCROLLBAR
|| n == K_HOR_SCROLLBAR) {
continue;
}
break;

View File

@ -1322,7 +1322,7 @@ void openscript(
do {
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);
State = save_State;