diff --git a/src/libeis-seat.c b/src/libeis-seat.c index a88d447..bca387e 100644 --- a/src/libeis-seat.c +++ b/src/libeis-seat.c @@ -190,14 +190,16 @@ eis_seat_add(struct eis_seat *seat) mask_add(seat->capabilities.proto_mask, mask); } - if (seat->capabilities.c_mask & (EIS_DEVICE_CAP_POINTER|EIS_DEVICE_CAP_POINTER_ABSOLUTE) && - (client->interface_versions.ei_pointer > 0 || client->interface_versions.ei_pointer_absolute > 0)) { + if (seat->capabilities.c_mask & EIS_DEVICE_CAP_SCROLL && + client->interface_versions.ei_scroll > 0) { uint64_t mask = bit(EIS_SCROLL_INTERFACE_INDEX); eis_seat_event_capability(seat, mask, EIS_SCROLL_INTERFACE_NAME); mask_add(seat->capabilities.proto_mask, mask); - - mask = bit(EIS_BUTTON_INTERFACE_INDEX); + } + if (seat->capabilities.c_mask & EIS_DEVICE_CAP_BUTTON && + client->interface_versions.ei_button > 0) { + uint64_t mask = bit(EIS_BUTTON_INTERFACE_INDEX); eis_seat_event_capability(seat, mask, EIS_BUTTON_INTERFACE_NAME); mask_add(seat->capabilities.proto_mask, mask);