]> granicus.if.org Git - vim/commitdiff
patch 8.0.0578: :simalt on MS-Windows does not work properly v8.0.0578
authorBram Moolenaar <Bram@vim.org>
Sat, 22 Apr 2017 13:17:40 +0000 (15:17 +0200)
committerBram Moolenaar <Bram@vim.org>
Sat, 22 Apr 2017 13:17:40 +0000 (15:17 +0200)
Problem:    :simalt on MS-Windows does not work properly.
Solution:   Put something in the typeahead buffer. (Christian Brabandt)

src/gui_w32.c
src/version.c

index fc566abee931fda0e3ebaed0b02b0674c2a94378..52db8f4a372bbf8a24eb4dde89ac3d280e4c7deb 100644 (file)
@@ -2627,7 +2627,9 @@ gui_mch_set_curtab(int nr)
     void
 ex_simalt(exarg_T *eap)
 {
-    char_u *keys = eap->arg;
+    char_u     *keys = eap->arg;
+    int                fill_typebuf = FALSE;
+    char_u     key_name[4];
 
     PostMessage(s_hwnd, WM_SYSCOMMAND, (WPARAM)SC_KEYMENU, (LPARAM)0);
     while (*keys)
@@ -2636,6 +2638,18 @@ ex_simalt(exarg_T *eap)
            *keys = ' ';            /* for showing system menu */
        PostMessage(s_hwnd, WM_CHAR, (WPARAM)*keys, (LPARAM)0);
        keys++;
+       fill_typebuf = TRUE;
+    }
+    if (fill_typebuf)
+    {
+       /* Put something in the typeahead buffer so that the message will get
+        * processed. */
+       key_name[0] = K_SPECIAL;
+       key_name[1] = KS_EXTRA;
+       key_name[2] = KE_IGNORE;
+       key_name[3] = NUL;
+       typebuf_was_filled = TRUE;
+       (void)ins_typebuf(key_name, REMAP_NONE, 0, TRUE, FALSE);
     }
 }
 
index 663717b60e2b35149d3c170aac7ee2dbc1d926cc..656a7ccf5ca50733536df1eb06fbea778ce1c5a3 100644 (file)
@@ -764,6 +764,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    578,
 /**/
     577,
 /**/