From: Bram Moolenaar Date: Tue, 5 Sep 2017 20:20:46 +0000 (+0200) Subject: patch 8.0.1060: when imstyle is one, mapping breaks preediting X-Git-Tag: v8.0.1060 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3971905bac0fe7e7519b35b1e558b4f1de55708d;p=vim 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 index 78bd39d81..63d6542bf 100644 --- 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 index 617a97d0e..f279bdef7 100644 --- 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 index 61b5b94dd..86a170b73 100644 --- a/src/version.c +++ b/src/version.c @@ -769,6 +769,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1060, /**/ 1059, /**/