0
0
mirror of https://github.com/vim/vim.git synced 2025-09-28 04:24:06 -04:00

patch 8.2.1988: still in Insert mode when opening terminal popup

Problem:    Still in Insert mode when opening terminal popup with a <Cmd>
            mapping in Insert mode.
Solution:   Exit Insert mode. (closes #7295)
This commit is contained in:
Bram Moolenaar
2020-11-14 21:34:59 +01:00
parent 6453cc8078
commit e41decc892
3 changed files with 25 additions and 0 deletions

View File

@@ -1033,6 +1033,11 @@ doESCkey:
case K_COMMAND: // <Cmd>command<CR>
do_cmdline(NULL, getcmdkeycmd, NULL, 0);
#ifdef FEAT_TERMINAL
if (term_use_loop())
// Started a terminal that gets the input, exit Insert mode.
goto doESCkey;
#endif
break;
case K_CURSORHOLD: // Didn't type something for a while.

View File

@@ -1237,6 +1237,24 @@ func Test_terminal_popup_with_cmd()
unlet s:winid
endfunc
func Test_terminal_popup_insert_cmd()
CheckUnix
inoremap <F3> <Cmd>call StartTermInPopup()<CR>
func StartTermInPopup()
call term_start(['/bin/sh', '-c', 'cat'], #{hidden: v:true})->popup_create(#{highlight: 'Pmenu'})
endfunc
call feedkeys("i\<F3>")
sleep 10m
call assert_equal('n', mode())
call feedkeys("\<C-D>", 'xt')
sleep 20m
call feedkeys(":q\<CR>", 'xt')
delfunc StartTermInPopup
iunmap <F3>
endfunc
func Check_dump01(off)
call assert_equal('one two three four five', trim(getline(a:off + 1)))
call assert_equal('~ Select Word', trim(getline(a:off + 7)))

View File

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