From 00b49dd8dd638c5fe1b664273aea5c843d69f36d Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sun, 24 Jul 2022 11:20:23 +0800 Subject: [PATCH] vim-patch:8.2.4674: cannot force getting MouseMove events Problem: Cannot force getting MouseMove events. Solution: Add the 'mousemoveevent' option with implementaiton for the GUI. (Ernie Rael, closes vim/vim#10044) https://github.com/vim/vim/commit/c4cb544cd5beaa864b3893e4b8d0085393c7dbce This only ports the docs and the option variable. The following commits will actually implement it as a UI option. --- runtime/doc/options.txt | 12 ++++++++++++ src/nvim/option_defs.h | 1 + src/nvim/options.lua | 7 +++++++ 3 files changed, 20 insertions(+) diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index 9e396dd3e8..208633f93f 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -4231,6 +4231,18 @@ A jump table for the options with a short description can be found at |Q_op|. The 'mousemodel' option is set by the |:behave| command. + *'mousemoveevent'* *'mousemev'* +'mousemoveevent' 'mousemev' boolean (default off) + global + {only works in the GUI} + When on, mouse move events are delivered to the input queue and are + available for mapping. The default, off, avoids the mouse movement + overhead except when needed. + Warning: Setting this option can make pending mappings to be aborted + when the mouse is moved. + Currently only works in the GUI, may be made to work in a terminal + later. + *'mousescroll'* 'mousescroll' string (default "ver:3,hor:6") global diff --git a/src/nvim/option_defs.h b/src/nvim/option_defs.h index bfac0cff87..64b3f69df4 100644 --- a/src/nvim/option_defs.h +++ b/src/nvim/option_defs.h @@ -616,6 +616,7 @@ EXTERN int p_ma; ///< 'modifiable' EXTERN int p_mod; ///< 'modified' EXTERN char *p_mouse; // 'mouse' EXTERN char *p_mousem; // 'mousemodel' +EXTERN int p_mousemev; ///< 'mousemoveevent' EXTERN int p_mousef; // 'mousefocus' EXTERN char *p_mousescroll; // 'mousescroll' EXTERN long p_mousescroll_vert INIT(= MOUSESCROLL_VERT_DFLT); diff --git a/src/nvim/options.lua b/src/nvim/options.lua index 2f941f5d0c..9f540e6005 100644 --- a/src/nvim/options.lua +++ b/src/nvim/options.lua @@ -1621,6 +1621,13 @@ return { varname='p_mousem', defaults={if_true="popup_setpos"} }, + { + full_name='mousemoveevent', abbreviation='mousemev', + short_desc=N_("deliver mouse move events to input queue"), + type='bool', scope={'global'}, + varname='p_mousemev', + defaults={if_true=false} + }, { full_name='mousescroll', short_desc=N_("amount to scroll by when scrolling with a mouse"),