From: Kevin O'Connor Date: Mon, 5 Sep 2016 15:56:03 +0000 (-0400) Subject: kbd: Ignore fake shift keys X-Git-Tag: rel-1.10.0~13 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=6cd69b75ead91fea625951cb7d89ad47e94137d7;p=seabios.git 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 --- diff --git a/src/kbd.c b/src/kbd.c index b00853f..b93d9d2 100644 --- a/src/kbd.c +++ b/src/kbd.c @@ -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 */