aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/misc1.c
diff options
context:
space:
mode:
authorMagnus Groß <magnus.gross@rwth-aachen.de>2021-10-22 20:36:35 +0200
committerMagnus Groß <magnus.gross@rwth-aachen.de>2021-11-18 11:23:18 +0100
commit11683193f597e1b3144ba65f08056cd44b19175f (patch)
tree1e3a890b58f32ccccf7ff075bfd212530122d3d9 /src/nvim/misc1.c
parent60c154687a8b8fbdb97cf3d394ae6aa5c6f90670 (diff)
downloadrneovim-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.c9
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);