diff --git a/sys/winnt/nh340key.c b/sys/winnt/nh340key.c index fd078269d..56e94ba03 100644 --- a/sys/winnt/nh340key.c +++ b/sys/winnt/nh340key.c @@ -196,7 +196,11 @@ INPUT_RECORD *ir; if (ch || iskeypad(scan) || altseq) { done = 1; /* Stop looking */ retval = 1; /* Found what we sought */ + } else { + /* Strange Key event; let's purge it to avoid trouble */ + ReadConsoleInput(hConIn,ir,1,&count); } + } else if ((ir->EventType == MOUSE_EVENT && (ir->Event.MouseEvent.dwButtonState & MOUSEMASK))) { diff --git a/sys/winnt/nhdefkey.c b/sys/winnt/nhdefkey.c index ec2e3905b..9402471d4 100644 --- a/sys/winnt/nhdefkey.c +++ b/sys/winnt/nhdefkey.c @@ -230,7 +230,11 @@ INPUT_RECORD *ir; if (ch || iskeypad(scan) || altseq) { done = 1; /* Stop looking */ retval = 1; /* Found what we sought */ + } else { + /* Strange Key event; let's purge it to avoid trouble */ + ReadConsoleInput(hConIn,ir,1,&count); } + } else if ((ir->EventType == MOUSE_EVENT && (ir->Event.MouseEvent.dwButtonState & MOUSEMASK))) { diff --git a/sys/winnt/nhraykey.c b/sys/winnt/nhraykey.c index e057d8d85..66e744285 100644 --- a/sys/winnt/nhraykey.c +++ b/sys/winnt/nhraykey.c @@ -551,7 +551,11 @@ INPUT_RECORD *ir; if (ch || iskeypad(scan) || altseq) { done = 1; /* Stop looking */ retval = 1; /* Found what we sought */ + } else { + /* Strange Key event; let's purge it to avoid trouble */ + ReadConsoleInput(hConIn,ir,1,&count); } + } else if ((ir->EventType == MOUSE_EVENT && (ir->Event.MouseEvent.dwButtonState & MOUSEMASK))) {