Cygwin: console: Ignore dwControlKeyState in event comparison.
- dwControlKeyState also may be null'ed on WriteConsoleInputW(). Therefore ignore it in event comparison as well as wVirtualKeyCode and wVirtualScanCode.
This commit is contained in:
parent
8d3271b7fa
commit
92519e3d0c
|
@ -187,13 +187,13 @@ inrec_eq (const INPUT_RECORD *a, const INPUT_RECORD *b, DWORD n)
|
||||||
for (DWORD i = 0; i < n; i++)
|
for (DWORD i = 0; i < n; i++)
|
||||||
{
|
{
|
||||||
if (a[i].EventType == KEY_EVENT && b[i].EventType == KEY_EVENT)
|
if (a[i].EventType == KEY_EVENT && b[i].EventType == KEY_EVENT)
|
||||||
{ /* wVirtualKeyCode and wVirtualScanCode of the readback
|
{ /* wVirtualKeyCode, wVirtualScanCode and dwControlKeyState
|
||||||
key event may be different from that of written event. */
|
of the readback key event may be different from that of
|
||||||
|
written event. Therefore they are ignored. */
|
||||||
const KEY_EVENT_RECORD *ak = &a[i].Event.KeyEvent;
|
const KEY_EVENT_RECORD *ak = &a[i].Event.KeyEvent;
|
||||||
const KEY_EVENT_RECORD *bk = &b[i].Event.KeyEvent;
|
const KEY_EVENT_RECORD *bk = &b[i].Event.KeyEvent;
|
||||||
if (ak->bKeyDown != bk->bKeyDown
|
if (ak->bKeyDown != bk->bKeyDown
|
||||||
|| ak->uChar.UnicodeChar != bk->uChar.UnicodeChar
|
|| ak->uChar.UnicodeChar != bk->uChar.UnicodeChar
|
||||||
|| ak->dwControlKeyState != bk->dwControlKeyState
|
|
||||||
|| ak->wRepeatCount != bk->wRepeatCount)
|
|| ak->wRepeatCount != bk->wRepeatCount)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue