diff options
author | Magnus Groß <magnus.gross@rwth-aachen.de> | 2021-10-22 20:36:35 +0200 |
---|---|---|
committer | Magnus Groß <magnus.gross@rwth-aachen.de> | 2021-11-18 11:23:18 +0100 |
commit | 11683193f597e1b3144ba65f08056cd44b19175f (patch) | |
tree | 1e3a890b58f32ccccf7ff075bfd212530122d3d9 /src/nvim/misc1.c | |
parent | 60c154687a8b8fbdb97cf3d394ae6aa5c6f90670 (diff) | |
download | rneovim-11683193f597e1b3144ba65f08056cd44b19175f.tar.gz rneovim-11683193f597e1b3144ba65f08056cd44b19175f.tar.bz2 rneovim-11683193f597e1b3144ba65f08056cd44b19175f.zip |
vim-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 vim/vim#8999)
https://github.com/vim/vim/commit/25def2c8b8bd7b0c3d5f020207c717a880b05d50
Diffstat (limited to 'src/nvim/misc1.c')
-rw-r--r-- | src/nvim/misc1.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/nvim/misc1.c b/src/nvim/misc1.c index 4c495ee9db..b50d8682eb 100644 --- a/src/nvim/misc1.c +++ b/src/nvim/misc1.c @@ -1067,12 +1067,13 @@ void trigger_modechanged(void) return; } - dict_T *v_event = get_vim_var_dict(VV_EVENT); - char *mode = get_mode(); - if (last_mode == NULL) { - last_mode = (char *)vim_strsave((char_u *)"n"); + if (STRCMP(mode, last_mode) == 0) { + xfree(mode); + return; } + + dict_T *v_event = get_vim_var_dict(VV_EVENT); tv_dict_add_str(v_event, S_LEN("new_mode"), mode); tv_dict_add_str(v_event, S_LEN("old_mode"), last_mode); |