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].
-->
<tablet rotate="0">
<!-- Active area dimensions are in mm -->
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;
#include <wlr/util/log.h>
#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)
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;