diff options
author | Bram Moolenaar <Bram@vim.org> | 2017-09-05 22:20:46 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2017-09-05 22:20:46 +0200 |
commit | 3971905bac0fe7e7519b35b1e558b4f1de55708d (patch) | |
tree | c56cf0e879a0e52426e349e693a37507744a2eb8 | |
parent | 3d8d2c7ca5dda5bfd62c6d5df6659cf62e960a3d (diff) | |
download | vim-git-3971905bac0fe7e7519b35b1e558b4f1de55708d.tar.gz |
patch 8.0.1060: when imstyle is one, mapping <Left> breaks preeditingv8.0.1060
Problem: When imstyle is one, mapping <Left> breaks preediting.
Solution: Pass though preediting key-events. (Yasuhiro Matsumoto, closes
#2064, closes #2063)
-rw-r--r-- | src/getchar.c | 7 | ||||
-rw-r--r-- | src/mbyte.c | 6 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 13 insertions, 2 deletions
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 @@ -770,6 +770,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1060, +/**/ 1059, /**/ 1058, |