1
0
forked from aniani/vim

patch 9.0.0660: mapping with CTRL keys does not work in the GUI

Problem:    Mapping with CTRL keys does not work in the GUI.
Solution:   Recognize CSI next to K_SPECIAL. (closes #11275, closes #11270)
This commit is contained in:
zeertzjq
2022-10-04 20:14:28 +01:00
committed by Bram Moolenaar
parent caf05f504e
commit 2cd0f27b75
3 changed files with 26 additions and 1 deletions

View File

@@ -1753,7 +1753,11 @@ vim_strsave_escape_csi(char_u *p)
d = res;
for (s = p; *s != NUL; )
{
if (s[0] == K_SPECIAL && s[1] != NUL && s[2] != NUL)
if ((s[0] == K_SPECIAL
#ifdef FEAT_GUI
|| (gui.in_use && s[0] == CSI)
#endif
) && s[1] != NUL && s[2] != NUL)
{
// Copy special key unmodified.
*d++ = *s++;

View File

@@ -1732,4 +1732,23 @@ func Test_gui_lowlevel_keyevent()
bw!
endfunc
func Test_gui_macro_csi()
" Test for issue #11270
nnoremap <C-L> <Cmd>let g:triggered = 1<CR>
let @q = "\x9b\xfc\x04L"
norm @q
call assert_equal(1, g:triggered)
unlet g:triggered
nunmap <C-L>
" Test for issue #11057
inoremap <C-D>t bbb
call setline(1, "\t")
let @q = "i\x9b\xfc\x04D"
" The end of :normal is like a mapping timing out
norm @q
call assert_equal('', getline(1))
iunmap <C-D>t
endfunc
" vim: shiftwidth=2 sts=2 expandtab

View File

@@ -699,6 +699,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
660,
/**/
659,
/**/