input: Check device counts in bind_seat()
We shouldn't be using seat->pointer|keyboard|touch here, we should be testing *_device_count to see if a device is currently present. Testing the pointers directly will result in incorrectly advertising capabilities after all devices of a type have been removed. Signed-off-by: Derek Foreman <derekf@osg.samsung.com> Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
This commit is contained in:
parent
d956379058
commit
30ce607682
@ -1901,11 +1901,11 @@ bind_seat(struct wl_client *client, void *data, uint32_t version, uint32_t id)
|
||||
wl_resource_set_implementation(resource, &seat_interface, data,
|
||||
unbind_resource);
|
||||
|
||||
if (seat->pointer)
|
||||
if (seat->pointer_device_count)
|
||||
caps |= WL_SEAT_CAPABILITY_POINTER;
|
||||
if (seat->keyboard)
|
||||
if (seat->keyboard_device_count)
|
||||
caps |= WL_SEAT_CAPABILITY_KEYBOARD;
|
||||
if (seat->touch)
|
||||
if (seat->touch_device_count)
|
||||
caps |= WL_SEAT_CAPABILITY_TOUCH;
|
||||
|
||||
wl_seat_send_capabilities(resource, caps);
|
||||
|
Loading…
x
Reference in New Issue
Block a user