
When keys are pressed on the numeric keypad, emit key codes for the numbers, operators, dot and enter.
Signed-off-by: Vincent Palatin vpalatin@chromium.org
common/usb_kbd.c | 10 ++++++++++ 1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/common/usb_kbd.c b/common/usb_kbd.c index aaf7d6f..2472d25 100644 --- a/common/usb_kbd.c +++ b/common/usb_kbd.c @@ -87,6 +87,12 @@ static const unsigned char usb_kbd_numkey_shifted[] = { '|', '~', ':', '"', '~', '<', '>', '?' };
+static const unsigned char usb_kbd_num_keypad[] = {
- '/', '*', '-', '+', '\r',
- '1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
- '.', 0, 0, 0, '='
+};
/*
- NOTE: It's important for the NUM, CAPS, SCROLL-lock bits to be in this
order. See usb_kbd_setled() function!
@@ -218,6 +224,10 @@ static int usb_kbd_translate(struct usb_kbd_pdata *data, unsigned char scancode, keycode = usb_kbd_numkey[scancode - 0x1e]; }
- /* Numeric keypad */
- if ((scancode >= 0x54) && (scancode <= 0x67))
keycode = usb_kbd_num_keypad[scancode - 0x54];
- if (data->flags & USB_KBD_CTRL) keycode = scancode - 0x3;
This is good, but what happens if you press "Ctrl + numpad_key" ? Check line 221 in usb_kbd.c for what I mean.
M