changeset 11386:e2b34123c7dc v8.0.0578

patch 8.0.0578: :simalt on MS-Windows does not work properly commit https://github.com/vim/vim/commit/7a85b0f028e0960ba70650ab462a9b6cca32139d Author: Bram Moolenaar <Bram@vim.org> Date: Sat Apr 22 15:17:40 2017 +0200 patch 8.0.0578: :simalt on MS-Windows does not work properly Problem: :simalt on MS-Windows does not work properly. Solution: Put something in the typeahead buffer. (Christian Brabandt)
author Christian Brabandt <cb@256bit.org>
date Sat, 22 Apr 2017 15:30:04 +0200
parents 47c1375e7c24
children 29e5776c035a
files src/gui_w32.c src/version.c
diffstat 2 files changed, 17 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/gui_w32.c
+++ b/src/gui_w32.c
@@ -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);
     }
 }
 
--- a/src/version.c
+++ b/src/version.c
@@ -765,6 +765,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    578,
+/**/
     577,
 /**/
     576,