mirror of
https://github.com/vim/vim.git
synced 2025-09-27 04:14:06 -04:00
patch 8.2.4723: the ModeChanged autocmd event is inefficient
Problem: The ModeChanged autocmd event is inefficient. Solution: Avoid allocating memory. (closes #10134) Rename trigger_modechanged() to may_trigger_modechanged().
This commit is contained in:
16
src/normal.c
16
src/normal.c
@@ -689,7 +689,7 @@ normal_cmd(
|
||||
# endif
|
||||
}
|
||||
#endif
|
||||
trigger_modechanged();
|
||||
may_trigger_modechanged();
|
||||
|
||||
// When not finishing an operator and no register name typed, reset the
|
||||
// count.
|
||||
@@ -971,7 +971,7 @@ normal_end:
|
||||
c = finish_op;
|
||||
#endif
|
||||
finish_op = FALSE;
|
||||
trigger_modechanged();
|
||||
may_trigger_modechanged();
|
||||
#ifdef CURSOR_SHAPE
|
||||
// Redraw the cursor with another shape, if we were in Operator-pending
|
||||
// mode or did a replace command.
|
||||
@@ -1027,7 +1027,7 @@ normal_end:
|
||||
if (restart_VIsual_select == 1)
|
||||
{
|
||||
VIsual_select = TRUE;
|
||||
trigger_modechanged();
|
||||
may_trigger_modechanged();
|
||||
showmode();
|
||||
restart_VIsual_select = 0;
|
||||
VIsual_select_reg = 0;
|
||||
@@ -1151,7 +1151,7 @@ end_visual_mode_keep_button()
|
||||
may_clear_cmdline();
|
||||
|
||||
adjust_cursor_eol();
|
||||
trigger_modechanged();
|
||||
may_trigger_modechanged();
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -3222,7 +3222,7 @@ nv_ctrlg(cmdarg_T *cap)
|
||||
if (VIsual_active) // toggle Selection/Visual mode
|
||||
{
|
||||
VIsual_select = !VIsual_select;
|
||||
trigger_modechanged();
|
||||
may_trigger_modechanged();
|
||||
showmode();
|
||||
}
|
||||
else if (!checkclearop(cap->oap))
|
||||
@@ -3285,7 +3285,7 @@ nv_ctrlo(cmdarg_T *cap)
|
||||
if (VIsual_active && VIsual_select)
|
||||
{
|
||||
VIsual_select = FALSE;
|
||||
trigger_modechanged();
|
||||
may_trigger_modechanged();
|
||||
showmode();
|
||||
restart_VIsual_select = 2; // restart Select mode later
|
||||
}
|
||||
@@ -5422,7 +5422,7 @@ nv_visual(cmdarg_T *cap)
|
||||
{ // or char/line mode
|
||||
VIsual_mode = cap->cmdchar;
|
||||
showmode();
|
||||
trigger_modechanged();
|
||||
may_trigger_modechanged();
|
||||
}
|
||||
redraw_curbuf_later(INVERTED); // update the inversion
|
||||
}
|
||||
@@ -5549,7 +5549,7 @@ n_start_visual_mode(int c)
|
||||
foldAdjustVisual();
|
||||
#endif
|
||||
|
||||
trigger_modechanged();
|
||||
may_trigger_modechanged();
|
||||
setmouse();
|
||||
#ifdef FEAT_CONCEAL
|
||||
// Check if redraw is needed after changing the state.
|
||||
|
Reference in New Issue
Block a user