From 79136f2a19fc5c7395c0fb38022503f1bb3faef1 Mon Sep 17 00:00:00 2001 From: Raheman Vaiya Date: Fri, 27 Dec 2024 00:28:26 -0500 Subject: [PATCH] evdev: Add support for AL_* family of keys found on some laptops --- src/device.c | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/src/device.c b/src/device.c index c7bc5fb..ef52e1b 100644 --- a/src/device.c +++ b/src/device.c @@ -467,31 +467,31 @@ struct device_event *device_read_event(struct device *dev) return NULL; if (ev.code >= 256) { - if (ev.code == BTN_LEFT) - ev.code = KEYD_LEFT_MOUSE; - else if (ev.code == BTN_MIDDLE) - ev.code = KEYD_MIDDLE_MOUSE; - else if (ev.code == BTN_RIGHT) - ev.code = KEYD_RIGHT_MOUSE; - else if (ev.code == BTN_SIDE) - ev.code = KEYD_MOUSE_1; - else if (ev.code == BTN_EXTRA) - ev.code = KEYD_MOUSE_2; - else if (ev.code == BTN_BACK) - ev.code = KEYD_MOUSE_BACK; - else if (ev.code == BTN_FORWARD) - ev.code = KEYD_MOUSE_FORWARD; - else if (ev.code == KEY_FN) - ev.code = KEYD_FN; - else if (ev.code == KEY_ZOOM) - ev.code = KEYD_ZOOM; - else if (ev.code == KEY_VOICECOMMAND) - ev.code = KEYD_VOICECOMMAND; - else if (ev.code >= BTN_DIGI - && ev.code <= BTN_TOOL_QUADTAP); - else { - keyd_log("r{ERROR:} unsupported evdev code: 0x%x\n", ev.code); - return NULL; + switch (ev.code) { + 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 KEY_FN: ev.code = KEYD_FN; break; + case KEY_ZOOM: ev.code = KEYD_ZOOM; break; + case KEY_VOICECOMMAND: ev.code = KEYD_VOICECOMMAND; break; + case KEY_EDITOR: ev.code = KEYD_F13; break; + case KEY_SPREADSHEET: ev.code = KEYD_F14; break; + case KEY_GRAPHICSEDITOR: ev.code = KEYD_F15; break; + case KEY_PRESENTATION: ev.code = KEYD_F16; break; + case KEY_DATABASE: ev.code = KEYD_F17; break; + case KEY_NEWS: ev.code = KEYD_F18; break; + case KEY_VOICEMAIL: ev.code = KEYD_F19; break; + case KEY_ADDRESSBOOK: ev.code = KEYD_F20; break; + case KEY_MESSENGER: ev.code = KEYD_F21; break; + default: + if (!(ev.code >= BTN_DIGI && ev.code <= BTN_TOOL_QUADTAP)) { + keyd_log("r{ERROR:} unsupported evdev code: 0x%x\n", ev.code); + return NULL; + } } }