0
0
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:
LemonBoy
2022-04-09 18:17:34 +01:00
committed by Bram Moolenaar
parent 81b46a6ccd
commit 2bf52dd065
10 changed files with 137 additions and 141 deletions

View File

@@ -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.