1
0
forked from aniani/vim

patch 8.2.3467: CursorHoldI event interferes with "CTRL-G U"

Problem:    CursorHoldI event interferes with "CTRL-G U". (Naohiro Ono)
Solution:   Restore the flag for "CTRL-G U" after triggering CursorHoldI.
            (closes #8937)
This commit is contained in:
Bram Moolenaar
2021-10-03 16:22:05 +01:00
parent cc8cd44533
commit 5a9357d0bf
3 changed files with 21 additions and 0 deletions

View File

@@ -1057,6 +1057,9 @@ doESCkey:
case K_CURSORHOLD: // Didn't type something for a while.
ins_apply_autocmds(EVENT_CURSORHOLDI);
did_cursorhold = TRUE;
// If CTRL-G U was used apply it to the next typed key.
if (dont_sync_undo == TRUE)
dont_sync_undo = MAYBE;
break;
#ifdef FEAT_GUI_MSWIN

View File

@@ -100,6 +100,22 @@ if has('timers')
set updatetime&
endfunc
func Test_cursorhold_insert_ctrl_g_U()
au CursorHoldI * :
set updatetime=20
new
call timer_start(100, { -> feedkeys("\<Left>foo\<Esc>", 't') })
call feedkeys("i()\<C-g>U", 'tx!')
sleep 200m
call assert_equal('(foo)', getline(1))
undo
call assert_equal('', getline(1))
bwipe!
au! CursorHoldI
set updatetime&
endfunc
func Test_OptionSet_modeline()
call test_override('starting', 1)
au! OptionSet

View File

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