diff options
author | Vladimir Kondratyev <wulf@FreeBSD.org> | 2018-11-25 19:37:00 +0000 |
---|---|---|
committer | Vladimir Kondratyev <wulf@FreeBSD.org> | 2018-11-25 19:37:00 +0000 |
commit | a0e9218c019b30a68fe137f8540a8c8da947480b (patch) | |
tree | f02e15c00238b1b0bb583eda9b7592d6bc4d8cc0 | |
parent | 038c170fc2480ccf15d977bcbd2a6a7fe1da09d4 (diff) | |
download | src-a0e9218c019b30a68fe137f8540a8c8da947480b.tar.gz src-a0e9218c019b30a68fe137f8540a8c8da947480b.zip |
evdev: Fix pause key release event in AT keyboard set 1 to evdev xlat-or.
MFC after: 2 weeks
Notes
Notes:
svn path=/head/; revision=340926
-rw-r--r-- | sys/dev/evdev/evdev_utils.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/dev/evdev/evdev_utils.c b/sys/dev/evdev/evdev_utils.c index d4b41e014fd3..14ddb30e9414 100644 --- a/sys/dev/evdev/evdev_utils.c +++ b/sys/dev/evdev/evdev_utils.c @@ -250,12 +250,15 @@ evdev_scancode2key(int *state, int scancode) */ *state = 0; if ((scancode & 0x7f) == 0x1D) - *state = 0x1D; + *state = scancode; return (NONE); /* NOT REACHED */ case 0x1D: /* pause / break */ + case 0x9D: + if ((*state ^ scancode) & 0x80) + return (NONE); *state = 0; - if (scancode != 0x45) + if ((scancode & 0x7f) != 0x45) return (NONE); keycode = KEY_PAUSE; break; |