]> granicus.if.org Git - vim/commitdiff
patch 8.0.1060: when imstyle is one, mapping <Left> breaks preediting v8.0.1060
authorBram Moolenaar <Bram@vim.org>
Tue, 5 Sep 2017 20:20:46 +0000 (22:20 +0200)
committerBram Moolenaar <Bram@vim.org>
Tue, 5 Sep 2017 20:20:46 +0000 (22:20 +0200)
Problem:    When imstyle is one, mapping <Left> breaks preediting.
Solution:   Pass though preediting key-events. (Yasuhiro Matsumoto, closes
            #2064, closes #2063)

src/getchar.c
src/mbyte.c
src/version.c

index 78bd39d81b679c96a0025619ed9b6e214f33c1cb..63d6542bfea4b82d8338df1a1a56151c660f4321 100644 (file)
@@ -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 */
index 617a97d0ea9b63b79d9760b20e2bf9e814758895..f279bdef78d3983acf0223c29f21d5283603378b 100644 (file)
@@ -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;
index 61b5b94dd177b0e5311684785ed9ed297c377fb8..86a170b730df9c8efefc8c5b5028f330fbb34896 100644 (file)
@@ -769,6 +769,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1060,
 /**/
     1059,
 /**/