diff options
Diffstat (limited to 'src/os_win32.c')
-rw-r--r-- | src/os_win32.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/os_win32.c b/src/os_win32.c index 627d515dd..159905d0b 100644 --- a/src/os_win32.c +++ b/src/os_win32.c @@ -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; } |