summaryrefslogtreecommitdiff
path: root/src/os_win32.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/os_win32.c')
-rw-r--r--src/os_win32.c6
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;
}