diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2016-09-05 11:56:03 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2016-09-12 10:22:10 -0400 |
commit | 6cd69b75ead91fea625951cb7d89ad47e94137d7 (patch) | |
tree | 6518c195771669bb96f6869dc36ac7cca81271bd /src/kbd.c | |
parent | fec2140c8601afae0ce997ffa7674d1dbd12de01 (diff) | |
download | qemu-seabios-6cd69b75ead91fea625951cb7d89ad47e94137d7.tar.gz |
kbd: Ignore fake shift keys
AT keyboards can produce "fake" shift keys on some extended events.
It's not necessary to process these artificial events as the actual
extended keys are detected directly.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'src/kbd.c')
-rw-r--r-- | src/kbd.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -428,10 +428,16 @@ __process_key(u8 scancode) return; case 0x2a: /* L Shift press */ case 0xaa: /* L Shift release */ + if (flags1 & KF1_LAST_E0) + // Ignore fake shifts + return; kbd_set_flag(key_release, KF0_LSHIFT, 0, 0); return; case 0x36: /* R Shift press */ case 0xb6: /* R Shift release */ + if (flags1 & KF1_LAST_E0) + // Ignore fake shifts + return; kbd_set_flag(key_release, KF0_RSHIFT, 0, 0); return; case 0x1d: /* Ctrl press */ |