Mercurial > vim
diff src/normal.c @ 26042:6b39ab99e367 v8.2.3555
patch 8.2.3555: ModeChanged is not triggered on every mode change
Commit: https://github.com/vim/vim/commit/25def2c8b8bd7b0c3d5f020207c717a880b05d50
Author: =?UTF-8?q?Magnus=20Gro=C3=9F?= <magnus.gross@rwth-aachen.de>
Date: Fri Oct 22 18:56:39 2021 +0100
patch 8.2.3555: ModeChanged is not triggered on every mode change
Problem: ModeChanged is not triggered on every mode change.
Solution: Also trigger on minor mode changes. (Maguns Gross, closes https://github.com/vim/vim/issues/8999)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Fri, 22 Oct 2021 20:00:05 +0200 |
parents | e8873138ffbb |
children | f53f365078dd |
line wrap: on
line diff
--- a/src/normal.c +++ b/src/normal.c @@ -527,6 +527,7 @@ normal_cmd( # endif } #endif + trigger_modechanged(); // When not finishing an operator and no register name typed, reset the // count. @@ -1221,6 +1222,7 @@ normal_end: c = finish_op; #endif finish_op = FALSE; + trigger_modechanged(); #ifdef CURSOR_SHAPE // Redraw the cursor with another shape, if we were in Operator-pending // mode or did a replace command. @@ -1278,6 +1280,7 @@ normal_end: if (restart_VIsual_select == 1) { VIsual_select = TRUE; + trigger_modechanged(); showmode(); restart_VIsual_select = 0; } @@ -1386,7 +1389,6 @@ end_visual_mode_keep_button() #endif VIsual_active = FALSE; - trigger_modechanged(); setmouse(); mouse_dragging = 0; @@ -1403,6 +1405,7 @@ end_visual_mode_keep_button() may_clear_cmdline(); adjust_cursor_eol(); + trigger_modechanged(); } /* @@ -3439,6 +3442,7 @@ nv_ctrlg(cmdarg_T *cap) if (VIsual_active) // toggle Selection/Visual mode { VIsual_select = !VIsual_select; + trigger_modechanged(); showmode(); } else if (!checkclearop(cap->oap)) @@ -3501,6 +3505,7 @@ nv_ctrlo(cmdarg_T *cap) if (VIsual_active && VIsual_select) { VIsual_select = FALSE; + trigger_modechanged(); showmode(); restart_VIsual_select = 2; // restart Select mode later }