core: Improve support for exotic mice

master
Raheman Vaiya 1 year ago
parent 0656cb250d
commit 3a356ac533
  1. 51
      src/device.c

@ -477,20 +477,18 @@ struct device_event *device_read_event(struct device *dev)
* Shifted function keys, some laptops (e.g thinkpads) will map
* these to exotic media keys instead.
*/
case KEY_FN_F1: ev.code = KEYD_F13; break;
case KEY_FN_F2: ev.code = KEYD_F14; break;
case KEY_FN_F3: ev.code = KEYD_F15; break;
case KEY_FN_F4: ev.code = KEYD_F16; break;
case KEY_FN_F5: ev.code = KEYD_F17; break;
case KEY_FN_F6: ev.code = KEYD_F18; break;
case KEY_FN_F7: ev.code = KEYD_F19; break;
case KEY_FN_F8: ev.code = KEYD_F20; break;
case KEY_FN_F9: ev.code = KEYD_F21; break;
case KEY_FN_F10: ev.code = KEYD_F22; break;
case KEY_FN_F11: ev.code = KEYD_F23; break;
case KEY_FN_F12: ev.code = KEYD_F24; break;
/* fn + f<n> keys on some thinkpads */
case KEY_FN_F1: ev.code = KEYD_F13; break;
case KEY_FN_F2: ev.code = KEYD_F14; break;
case KEY_FN_F3: ev.code = KEYD_F15; break;
case KEY_FN_F4: ev.code = KEYD_F16; break;
case KEY_FN_F5: ev.code = KEYD_F17; break;
case KEY_FN_F6: ev.code = KEYD_F18; break;
case KEY_FN_F7: ev.code = KEYD_F19; break;
case KEY_FN_F8: ev.code = KEYD_F20; break;
case KEY_FN_F9: ev.code = KEYD_F21; break;
case KEY_FN_F10: ev.code = KEYD_F22; break;
case KEY_FN_F11: ev.code = KEYD_F23; break;
case KEY_FN_F12: ev.code = KEYD_F24; break;
/* Thinkpad fn shifted f9-f11 */
case KEY_NOTIFICATION_CENTER: ev.code = KEYD_F21; break;
@ -522,13 +520,24 @@ struct device_event *device_read_event(struct device *dev)
case KEY_VOICECOMMAND: ev.code = KEYD_VOICECOMMAND; break;
/* Mouse buttons */
case BTN_LEFT: ev.code = KEYD_LEFT_MOUSE; break;
case BTN_MIDDLE: ev.code = KEYD_MIDDLE_MOUSE; break;
case BTN_RIGHT: ev.code = KEYD_RIGHT_MOUSE; break;
case BTN_SIDE: ev.code = KEYD_MOUSE_1; break;
case BTN_EXTRA: ev.code = KEYD_MOUSE_2; break;
case BTN_BACK: ev.code = KEYD_MOUSE_BACK; break;
case BTN_FORWARD: ev.code = KEYD_MOUSE_FORWARD; break;
case BTN_LEFT: ev.code = KEYD_LEFT_MOUSE; break;
case BTN_MIDDLE: ev.code = KEYD_MIDDLE_MOUSE; break;
case BTN_RIGHT: ev.code = KEYD_RIGHT_MOUSE; break;
case BTN_SIDE: ev.code = KEYD_MOUSE_1; break;
case BTN_EXTRA: ev.code = KEYD_MOUSE_2; break;
case BTN_BACK: ev.code = KEYD_MOUSE_BACK; break;
case BTN_FORWARD: ev.code = KEYD_MOUSE_FORWARD; break;
case BTN_0: ev.code = KEYD_F13; break;
case BTN_1: ev.code = KEYD_F14; break;
case BTN_2: ev.code = KEYD_F15; break;
case BTN_3: ev.code = KEYD_F16; break;
case BTN_4: ev.code = KEYD_F17; break;
case BTN_5: ev.code = KEYD_F18; break;
case BTN_6: ev.code = KEYD_F19; break;
case BTN_7: ev.code = KEYD_F20; break;
case BTN_8: ev.code = KEYD_F21; break;
case BTN_9: ev.code = KEYD_F22; break;
default:
if (!(ev.code >= BTN_DIGI && ev.code <= BTN_TOOL_QUADTAP)) {

Loading…
Cancel
Save