From f6a3cd74bff4568c27dde672407c35ac8c058e34 Mon Sep 17 00:00:00 2001 From: Yaroslav Chvanov Date: Wed, 1 Mar 2023 20:45:56 +0300 Subject: [PATCH] gskill: add back button type button actions Regression since 5548da21d335d525955b7b7337fdb836685d89fc. However I'm almost 100% sure this displays incorrect mouse buttons. --- src/driver-gskill.c | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/src/driver-gskill.c b/src/driver-gskill.c index 88f5e43c..658c9b6e 100644 --- a/src/driver-gskill.c +++ b/src/driver-gskill.c @@ -1178,6 +1178,25 @@ gskill_read_button(struct ratbag_button *button) break; case GSKILL_BUTTON_FUNCTION_MOUSE: act->type = RATBAG_BUTTON_ACTION_TYPE_BUTTON; + + /* FIXME: There is almost no chance this is correct. */ + switch (bcfg->params.mouse.button_mask) { + case GSKILL_BTN_MASK_LEFT: + act->action.button = 1; + break; + case GSKILL_BTN_MASK_RIGHT: + act->action.button = 3; + break; + case GSKILL_BTN_MASK_MIDDLE: + act->action.button = 2; + break; + case GSKILL_BTN_MASK_SIDE: + act->action.button = 15; + break; + case GSKILL_BTN_MASK_EXTRA: + act->action.button = 14; + break; + } break; case GSKILL_BUTTON_FUNCTION_KBD: act->type = RATBAG_BUTTON_ACTION_TYPE_KEY; @@ -1264,6 +1283,28 @@ gskill_update_button(struct ratbag_button *button) break; case RATBAG_BUTTON_ACTION_TYPE_BUTTON: bcfg->type = GSKILL_BUTTON_FUNCTION_MOUSE; + + /* FIXME: There is almost no chance this is correct. */ + switch (action->action.button) { + case 1: + bcfg->params.mouse.button_mask = GSKILL_BTN_MASK_LEFT; + break; + case 3: + bcfg->params.mouse.button_mask = GSKILL_BTN_MASK_RIGHT; + break; + case 2: + bcfg->params.mouse.button_mask = GSKILL_BTN_MASK_MIDDLE; + break; + case 15: + bcfg->params.mouse.button_mask = GSKILL_BTN_MASK_SIDE; + break; + case 14: + bcfg->params.mouse.button_mask = GSKILL_BTN_MASK_EXTRA; + break; + default: + return -EINVAL; + } + break; case RATBAG_BUTTON_ACTION_TYPE_KEY: code = ratbag_hidraw_get_keyboard_usage_from_keycode(