Fetch input device vendor/product from libinput

References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4582
This commit is contained in:
Simon Ser 2024-03-07 12:16:11 +01:00 committed by Simon Zeni
parent 59f6292383
commit f2a0e81b24
2 changed files with 13 additions and 6 deletions

View file

@ -65,8 +65,15 @@ struct sway_seat *input_manager_sway_seat_from_wlr_seat(struct wlr_seat *wlr_sea
} }
char *input_device_get_identifier(struct wlr_input_device *device) { char *input_device_get_identifier(struct wlr_input_device *device) {
int vendor = device->vendor; int vendor = 0, product = 0;
int product = device->product; #if WLR_HAS_LIBINPUT_BACKEND
if (wlr_input_device_is_libinput(device)) {
struct libinput_device *libinput_dev = wlr_libinput_get_device_handle(device);
vendor = libinput_device_get_id_vendor(libinput_dev);
product = libinput_device_get_id_product(libinput_dev);
}
#endif
char *name = strdup(device->name ? device->name : ""); char *name = strdup(device->name ? device->name : "");
strip_whitespace(name); strip_whitespace(name);

View file

@ -1097,10 +1097,6 @@ json_object *ipc_json_describe_input(struct sway_input_device *device) {
json_object_new_string(device->identifier)); json_object_new_string(device->identifier));
json_object_object_add(object, "name", json_object_object_add(object, "name",
json_object_new_string(device->wlr_device->name)); json_object_new_string(device->wlr_device->name));
json_object_object_add(object, "vendor",
json_object_new_int(device->wlr_device->vendor));
json_object_object_add(object, "product",
json_object_new_int(device->wlr_device->product));
json_object_object_add(object, "type", json_object_object_add(object, "type",
json_object_new_string( json_object_new_string(
input_device_get_type(device))); input_device_get_type(device)));
@ -1154,6 +1150,10 @@ json_object *ipc_json_describe_input(struct sway_input_device *device) {
libinput_dev = wlr_libinput_get_device_handle(device->wlr_device); libinput_dev = wlr_libinput_get_device_handle(device->wlr_device);
json_object_object_add(object, "libinput", json_object_object_add(object, "libinput",
describe_libinput_device(libinput_dev)); describe_libinput_device(libinput_dev));
json_object_object_add(object, "vendor",
json_object_new_int(libinput_device_get_id_vendor(libinput_dev)));
json_object_object_add(object, "product",
json_object_new_int(libinput_device_get_id_product(libinput_dev)));
} }
#endif #endif