int
remove_master(Display* dpy, int argc, char** argv, char *name, char *desc)
{
+ XDeviceInfo *info;
XRemoveMasterInfo r;
XDevice* master = NULL, *ptr = NULL, *keybd = NULL;
int ret;
return EXIT_FAILURE;
}
- master = XOpenDevice(dpy, atoi(argv[0]));
+ info = find_device_info(dpy, argv[0], False);
+
+ if (!info) {
+ fprintf(stderr, "unable to find device %s\n", argv[0]);
+ return EXIT_FAILURE;
+ }
+
+ master = XOpenDevice(dpy, info->id);
if (!master)
- Error(BadValue, "Invalid master device.\n");
+ Error(BadValue, "Unable to open device %s.\n", argv[0]);
r.type = CH_RemoveMasterDevice;
r.device = master;
int
change_attachment(Display* dpy, int argc, char** argv, char *name, char* desc)
{
+ XDeviceInfo *info_sd, *info_md;
XChangeAttachmentInfo c;
XDevice *slave, *master;
int ret;
return EXIT_FAILURE;
}
- slave = XOpenDevice(dpy, atoi(argv[0]));
- master = XOpenDevice(dpy, atoi(argv[1]));
+ info_sd = find_device_info(dpy, argv[0], True);
+ info_md = find_device_info(dpy, argv[1], False);
+
+ if (!info_sd) {
+ fprintf(stderr, "unable to find device %s\n", argv[0]);
+ return EXIT_FAILURE;
+ }
+
+ if (!info_md) {
+ fprintf(stderr, "unable to find device %s\n", argv[1]);
+ return EXIT_FAILURE;
+ }
+
+ slave = XOpenDevice(dpy, info_sd->id);
+ master = XOpenDevice(dpy, info_md->id);
if (!slave)
Error(BadValue, "Invalid slave device given %d\n", atoi(argv[0]));
int
float_device(Display* dpy, int argc, char** argv, char* name, char* desc)
{
+ XDeviceInfo *info;
XChangeAttachmentInfo c;
XDevice *slave;
int ret;
return EXIT_FAILURE;
}
+ info = find_device_info(dpy, argv[0], True);
+
+ if (!info) {
+ fprintf(stderr, "unable to find device %s\n", argv[0]);
+ return EXIT_FAILURE;
+ }
- slave = XOpenDevice(dpy, atoi(argv[0]));
+ slave = XOpenDevice(dpy, info->id);
if (!slave)
return BadValue;
int
set_clientpointer(Display* dpy, int argc, char** argv, char* name, char *desc)
{
+ XDeviceInfo* info;
XID window;
- XID deviceid;
XDevice* dev = NULL;
char* id;
char* dummy;
while(*id == '0') id++;
window = strtol(argv[0], &dummy, (*id == 'x') ? 16 : 10);
- deviceid = atol(argv[1]);
- dev = XOpenDevice(dpy, deviceid);
+ info = find_device_info(dpy, argv[1], False);
+
+ if (!info) {
+ fprintf(stderr, "unable to find device %s\n", argv[1]);
+ return EXIT_FAILURE;
+ }
+
+ dev = XOpenDevice(dpy, info->id);
if (!dev)
{
- fprintf(stderr, "Cannot open device %ld.\n", deviceid);
+ fprintf(stderr, "Cannot open device %s.\n", argv[1]);
} else
XSetClientPointer(dpy, window, dev);
return 0;