diff options
-rw-r--r-- | src/void.c | 30 |
1 files changed, 29 insertions, 1 deletions
@@ -52,6 +52,11 @@ #include <xf86Module.h> #endif +#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 +#include <X11/Xatom.h> +#include <xserver-properties.h> +#endif + #define MAXBUTTONS 3 /****************************************************************************** @@ -178,7 +183,18 @@ xf86VoidControlProc(DeviceIntPtr device, int what) XkbRMLVOSet rmlvo; #endif Bool result; - +#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 + Atom btn_labels[MAXBUTTONS] = {0}; + Atom axes_labels[2] = {0}; + + axes_labels[0] = XIGetKnownProperty(AXIS_LABEL_PROP_REL_X); + axes_labels[1] = XIGetKnownProperty(AXIS_LABEL_PROP_REL_Y); + + btn_labels[0] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_LEFT); + btn_labels[1] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_MIDDLE); + btn_labels[2] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_RIGHT); +#endif + pInfo = device->public.devicePrivate; switch (what) @@ -192,6 +208,9 @@ xf86VoidControlProc(DeviceIntPtr device, int what) if (InitButtonClassDeviceStruct(device, MAXBUTTONS, +#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 + btn_labels, +#endif map) == FALSE) { ErrorF("unable to allocate Button class device\n"); return !Success; @@ -224,6 +243,9 @@ xf86VoidControlProc(DeviceIntPtr device, int what) if (InitValuatorClassDeviceStruct(device, 2, +#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 + axes_labels, +#endif #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 3 xf86GetMotionEvents, #endif @@ -231,12 +253,18 @@ xf86VoidControlProc(DeviceIntPtr device, int what) Absolute) == FALSE) { InitValuatorAxisStruct(device, 0, +#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 + axes_labels[0], +#endif 0, /* min val */1, /* max val */ 1, /* resolution */ 0, /* min_res */ 1); /* max_res */ InitValuatorAxisStruct(device, 1, +#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 + axes_labels[1], +#endif 0, /* min val */1, /* max val */ 1, /* resolution */ 0, /* min_res */ |