mirror of
https://github.com/vim/vim.git
synced 2025-09-30 04:44:14 -04:00
patch 9.1.0511: CursorMovedC triggered wrongly with setcmdpos()
Problem: CursorMovedC triggered wrongly with setcmdpos() (after v9.1.0507) Solution: Remove the premature triggering. Also don't trigger when cursor didn't move. (zeertzjq) closes: #15064 Signed-off-by: zeertzjq <zeertzjq@outlook.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
17e0a1969d
commit
bc6f96708e
@@ -1586,7 +1586,7 @@ getcmdline_int(
|
||||
int res;
|
||||
int save_msg_scroll = msg_scroll;
|
||||
int save_State = State; // remember State when called
|
||||
int save_cmdspos = ccline.cmdspos;
|
||||
int prev_cmdpos = -1;
|
||||
int some_key_typed = FALSE; // one of the keys was typed
|
||||
// mouse drag and release events are ignored, unless they are
|
||||
// preceded with a mouse down event
|
||||
@@ -2474,16 +2474,19 @@ getcmdline_int(
|
||||
* (Sorry for the goto's, I know it is ugly).
|
||||
*/
|
||||
cmdline_not_changed:
|
||||
// Trigger CursorMovedC autocommands.
|
||||
if (ccline.cmdspos != save_cmdspos)
|
||||
// Trigger CursorMovedC autocommands.
|
||||
if (ccline.cmdpos != prev_cmdpos)
|
||||
{
|
||||
trigger_cmd_autocmd(cmdline_type, EVENT_CURSORMOVEDC);
|
||||
|
||||
prev_cmdpos = ccline.cmdpos;
|
||||
}
|
||||
#ifdef FEAT_SEARCH_EXTRA
|
||||
if (!is_state.incsearch_postponed)
|
||||
continue;
|
||||
#endif
|
||||
|
||||
cmdline_changed:
|
||||
prev_cmdpos = ccline.cmdpos;
|
||||
#ifdef FEAT_SEARCH_EXTRA
|
||||
// If the window changed incremental search state is not valid.
|
||||
if (is_state.winid != curwin->w_id)
|
||||
@@ -4321,9 +4324,6 @@ set_cmdline_pos(
|
||||
else
|
||||
new_cmdpos = pos;
|
||||
|
||||
// Trigger CursorMovedC autocommands.
|
||||
trigger_cmd_autocmd(get_cmdline_type(), EVENT_CURSORMOVEDC);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user