1
0
forked from aniani/vim

patch 7.4.1759

Problem:    When using feedkeys() in a timer the inserted characters are not
            used right away.
Solution:   Break the wait loop when characters have been added to typebuf.
            use this for testing CursorHoldI.
This commit is contained in:
Bram Moolenaar
2016-04-20 20:18:23 +02:00
parent 245c41070c
commit 40b1b5443c
5 changed files with 53 additions and 5 deletions

View File

@@ -1446,6 +1446,7 @@ WaitForChar(long msec)
INPUT_RECORD ir;
DWORD cRecords;
WCHAR ch, ch2;
int tb_change_cnt = typebuf.tb_change_cnt;
if (msec > 0)
/* Wait until the specified time has elapsed. */
@@ -1511,6 +1512,11 @@ WaitForChar(long msec)
/* Trigger timers and then get the time in msec until the
* next one is due. Wait up to that time. */
due_time = check_due_timer();
if (typebuf.tb_change_cnt != tb_change_cnt)
{
/* timer may have used feedkeys() */
return FALSE;
}
if (due_time > 0 && dwWaitTime > (DWORD)due_time)
dwWaitTime = due_time;
}