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:
@@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user