# HG changeset patch # User Christian Brabandt # Date 1504643404 -7200 # Node ID d3175a3bd8cdc8e7bf6a71c4b594f829ed1f4421 # Parent 588b8fd2c0457cfec201374d9958918e053b763b patch 8.0.1060: when imstyle is one, mapping breaks preediting commit https://github.com/vim/vim/commit/3971905bac0fe7e7519b35b1e558b4f1de55708d Author: Bram Moolenaar Date: Tue Sep 5 22:20:46 2017 +0200 patch 8.0.1060: when imstyle is one, mapping breaks preediting Problem: When imstyle is one, mapping breaks preediting. Solution: Pass though preediting key-events. (Yasuhiro Matsumoto, closes #2064, closes #2063) diff --git a/src/getchar.c b/src/getchar.c --- a/src/getchar.c +++ b/src/getchar.c @@ -1598,8 +1598,13 @@ vgetc(void) { int did_inc = FALSE; - if (mod_mask) /* no mapping after modifier has been read */ + if (mod_mask +#if defined(FEAT_XIM) && defined(FEAT_GUI_GTK) + || im_is_preediting() +#endif + ) { + /* no mapping after modifier has been read */ ++no_mapping; ++allow_keys; did_inc = TRUE; /* mod_mask may change value */ diff --git a/src/mbyte.c b/src/mbyte.c --- a/src/mbyte.c +++ b/src/mbyte.c @@ -4964,7 +4964,11 @@ im_delete_preedit(void) return; } - if (State & NORMAL) + if (State & NORMAL +#ifdef FEAT_TERMINAL + && !term_use_loop() +#endif + ) { im_preedit_cursor = 0; return; diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -770,6 +770,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1060, +/**/ 1059, /**/ 1058,