From d48126bf97199270537f1750f3d8445ee4d6af16 Mon Sep 17 00:00:00 2001 From: Jens Peters Date: Tue, 2 Jan 2024 20:31:17 +0100 Subject: [PATCH] config: add user names for pad butttons --- docs/rc.xml.all | 4 ++-- include/input/tablet_pad.h | 10 ++++++++++ src/config/tablet.c | 19 +++++++++++++++++++ 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/docs/rc.xml.all b/docs/rc.xml.all index 9cc6dd0a..44397af8 100644 --- a/docs/rc.xml.all +++ b/docs/rc.xml.all @@ -404,8 +404,8 @@ after applying tablet area transformation. Tablet buttons emulate regular mouse buttons. The tablet *button* can - be set to any of [tip|stylus|stylus2|stylus3]. Valid *to* mouse buttons - are [left|right|middle]. + be set to any of [tip|stylus|stylus2|stylus3|pad|pad2|pad3|..|pad9]. + Valid *to* mouse buttons are [left|right|middle]. --> diff --git a/include/input/tablet_pad.h b/include/input/tablet_pad.h index 144bec7d..20256b52 100644 --- a/include/input/tablet_pad.h +++ b/include/input/tablet_pad.h @@ -7,6 +7,16 @@ struct seat; struct wlr_device; struct wlr_input_device; +#define LAB_BTN_PAD 0x0 +#define LAB_BTN_PAD2 0x1 +#define LAB_BTN_PAD3 0x2 +#define LAB_BTN_PAD4 0x3 +#define LAB_BTN_PAD5 0x4 +#define LAB_BTN_PAD6 0x5 +#define LAB_BTN_PAD7 0x6 +#define LAB_BTN_PAD8 0x7 +#define LAB_BTN_PAD9 0x8 + struct drawing_tablet_pad { struct seat *seat; struct wlr_tablet_pad *tablet; diff --git a/src/config/tablet.c b/src/config/tablet.c index 7c6ee2f1..418fefdd 100644 --- a/src/config/tablet.c +++ b/src/config/tablet.c @@ -6,6 +6,7 @@ #include #include "config/tablet.h" #include "config/rcxml.h" +#include "input/tablet_pad.h" double tablet_get_dbl_if_positive(const char *content, const char *name) @@ -48,6 +49,24 @@ tablet_button_from_str(const char *button) return BTN_STYLUS2; } else if (!strcasecmp(button, "Stylus3")) { return BTN_STYLUS3; + } else if (!strcasecmp(button, "Pad")) { + return LAB_BTN_PAD; + } else if (!strcasecmp(button, "Pad2")) { + return LAB_BTN_PAD2; + } else if (!strcasecmp(button, "Pad3")) { + return LAB_BTN_PAD3; + } else if (!strcasecmp(button, "Pad4")) { + return LAB_BTN_PAD4; + } else if (!strcasecmp(button, "Pad5")) { + return LAB_BTN_PAD5; + } else if (!strcasecmp(button, "Pad6")) { + return LAB_BTN_PAD6; + } else if (!strcasecmp(button, "Pad7")) { + return LAB_BTN_PAD7; + } else if (!strcasecmp(button, "Pad8")) { + return LAB_BTN_PAD8; + } else if (!strcasecmp(button, "Pad9")) { + return LAB_BTN_PAD9; } wlr_log(WLR_ERROR, "Invalid value for tablet button: %s", button); return UINT32_MAX; -- 2.52.0