diff --git a/src/libratbag-private.h b/src/libratbag-private.h index 63169b2f..0ba4f491 100644 --- a/src/libratbag-private.h +++ b/src/libratbag-private.h @@ -45,6 +45,7 @@ struct ratbag { struct udev_device *udev_hidraw; int evdev_fd; int refcount; + struct input_id ids; struct ratbag_driver *driver; struct libratbag *libratbag; }; diff --git a/src/libratbag.c b/src/libratbag.c index 5ce68ab4..34955764 100644 --- a/src/libratbag.c +++ b/src/libratbag.c @@ -240,7 +240,6 @@ LIBRATBAG_EXPORT struct ratbag* ratbag_new_from_fd(struct libratbag *libratbag, int fd) { int rc; - struct input_id ids; struct ratbag *ratbag = NULL; struct ratbag_driver *driver; char buf[256]; @@ -256,7 +255,7 @@ ratbag_new_from_fd(struct libratbag *libratbag, int fd) ratbag->libratbag = libratbag_ref(libratbag); - rc = ioctl(fd, EVIOCGID, &ids); + rc = ioctl(fd, EVIOCGID, &ratbag->ids); if (rc < 0) goto out_err; @@ -277,7 +276,7 @@ ratbag_new_from_fd(struct libratbag *libratbag, int fd) if (rc) goto out_err; - driver = ratbag_find_driver(libratbag, ratbag, &ids); + driver = ratbag_find_driver(libratbag, ratbag, &ratbag->ids); if (!driver) { errno = ENOTSUP; goto err_udev;