# HG changeset patch # User Christian Brabandt # Date 1492867804 -7200 # Node ID e2b34123c7dcca9bbe0235342e4be87ae545cc0e # Parent 47c1375e7c242d5c7cf2f4c10c52016927a6bdb1 patch 8.0.0578: :simalt on MS-Windows does not work properly commit https://github.com/vim/vim/commit/7a85b0f028e0960ba70650ab462a9b6cca32139d Author: Bram Moolenaar 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) diff --git a/src/gui_w32.c b/src/gui_w32.c --- 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); } } diff --git a/src/version.c b/src/version.c --- 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,