Mercurial > vim
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); } }