26 lines
1.2 KiB
Diff
26 lines
1.2 KiB
Diff
diff --git a/src/xf86libinput.c b/src/xf86libinput.c
|
|
index 1aebca3..8d3691c 100644
|
|
--- a/src/xf86libinput.c
|
|
+++ b/src/xf86libinput.c
|
|
@@ -1727,12 +1727,19 @@ xf86libinput_handle_key(InputInfoPtr pInfo, struct libinput_event_keyboard *even
|
|
if ((driver_data->capabilities & CAP_KEYBOARD) == 0)
|
|
return;
|
|
|
|
- /* keycodes > 256 that have a historical mapping in xkeyboard-config */
|
|
+ /* keycodes > 256 that have a historical mapping in xkeyboard-config
|
|
+ * plus Nokia MSM8909 keypad evdev keycodes > 247 mapped into X11 8-bit range */
|
|
switch (key) {
|
|
case KEY_TOUCHPAD_TOGGLE: key = KEY_F21; break;
|
|
case KEY_TOUCHPAD_ON: key = KEY_F22; break;
|
|
case KEY_TOUCHPAD_OFF: key = KEY_F23; break;
|
|
case KEY_MICMUTE: key = KEY_F20; break;
|
|
+ case 696: /* KEY_KBD_LCD_MENU1 (Left Softkey) */ key = KEY_COMPOSE; break;
|
|
+ case 697: /* KEY_KBD_LCD_MENU2 (Right Softkey) */ key = KEY_BACK; break;
|
|
+ case 445: /* KEY_PICKUP_PHONE (Call button) */ key = KEY_PHONE; break;
|
|
+ case 352: /* KEY_OK (Center D-pad OK) */ key = KEY_ENTER; break;
|
|
+ case 522: /* KEY_NUMERIC_STAR (*) */ key = KEY_KPASTERISK; break;
|
|
+ case 523: /* KEY_NUMERIC_POUND (#) */ key = KEY_KPSLASH; break;
|
|
}
|
|
|
|
key += XORG_KEYCODE_OFFSET;
|