[PATCH app/xinput] Teach --set-button-map about pointer: prefix.
Eric Gillespie
epg at pretzelnet.org
Tue Jan 24 00:42:58 UTC 2023
Some highly configurable pointing devices also act as keyboards.
For consistency with other commands, use xi2_find_device_info .
As the build already fails without XInput2, not making conditional on
the HAVE_XI macro. Suggest removing it, in fact.
---
src/buttonmap.c | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/src/buttonmap.c b/src/buttonmap.c
index 3396e75..2089a2d 100644
--- a/src/buttonmap.c
+++ b/src/buttonmap.c
@@ -95,7 +95,7 @@ set_button_map(Display *display,
char *name,
char *desc)
{
- XDeviceInfo *info;
+ XIDeviceInfo *info;
XDevice *device;
XAnyClassPtr ip;
int i;
@@ -106,20 +106,19 @@ set_button_map(Display *display,
return EXIT_FAILURE;
}
- info = find_device_info(display, argv[0], False);
+ info = xi2_find_device_info(display, argv[0]);
if (!info) {
fprintf(stderr, "unable to find device '%s'\n", argv[0]);
return EXIT_FAILURE;
}
- ip = (XAnyClassPtr) info->inputclassinfo;
nbuttons = 0;
/* try to find the number of buttons */
for(i=0; i<info->num_classes; i++) {
- if (ip->class == ButtonClass) {
- nbuttons = ((XButtonInfoPtr)ip)->num_buttons;
+ if (info->classes[i]->type == XIButtonClass) {
+ nbuttons = ((XIButtonClassInfo*)info->classes[i])->num_buttons;
break;
}
ip = (XAnyClassPtr) ((char *) ip + ip->length);
@@ -129,7 +128,7 @@ set_button_map(Display *display,
return EXIT_FAILURE;
}
- device = XOpenDevice(display, info->id);
+ device = XOpenDevice(display, info->deviceid);
if (device) {
int idx;
unsigned char *map;
--
2.35.3
More information about the xorg-devel
mailing list