return;
name = XGetAtomName(dpy, property);
- printf("\t%s:\t", name);
+ printf("\t%s (%d):\t", name, property);
if (XGetDeviceProperty(dpy, dev, property, 0, 1000, False, False,
AnyPropertyType, &act_type, &act_format,
if (!is_atom)
prop = XInternAtom(dpy, name, False);
+ else
+ prop = atoi(name);
nelements = argc - 3;
format = atoi(argv[2]);
XEvent ev;
XDevicePropertyNotifyEvent *dpev;
char *name;
+ int type_prop;
+ XEventClass cls_prop;
if (list_props(dpy, argc, argv, n, desc) != EXIT_SUCCESS)
return EXIT_FAILURE;
return EXIT_FAILURE;
}
- XiSelectEvent(dpy, DefaultRootWindow(dpy), NULL,
- XI_DevicePropertyNotifyMask);
+ DevicePropertyNotify(dev, type_prop, cls_prop);
+ XSelectExtensionEvent(dpy, DefaultRootWindow(dpy), &cls_prop, 1);
while(1)
{
XNextEvent(dpy, &ev);
dpev = (XDevicePropertyNotifyEvent*)&ev;
- if (dpev->type != GenericEvent &&
- dpev->type != XI_DevicePropertyNotify)
+ if (dpev->type != type_prop)
continue;
+
name = XGetAtomName(dpy, dpev->atom);
printf("Property '%s' changed.\n", name);
print_property(dpy, dev, dpev->atom);