struct ds_seat *seat;
struct ds_data_device_manager *data_device;
+ enum wl_seat_capability seat_caps;
+
struct wl_list views;
struct wl_listener display_destroy;
switch (dev_type) {
case DS_INPUT_DEVICE_KEYBOARD:
server_add_keyboard(server, dev);
- ds_seat_set_capabilities(server->seat,
- WL_SEAT_CAPABILITY_KEYBOARD);
+ server->seat_caps |= WL_SEAT_CAPABILITY_KEYBOARD;
break;
case DS_INPUT_DEVICE_TOUCH:
server_add_touch(server, dev);
break;
case DS_INPUT_DEVICE_POINTER:
server_add_pointer(server, dev);
- ds_seat_set_capabilities(server->seat,
- WL_SEAT_CAPABILITY_POINTER);
+ server->seat_caps |= WL_SEAT_CAPABILITY_POINTER;
break;
default:
ds_err("Unknown type(%d) of ds_input_device", dev_type);
break;
}
+
+ ds_seat_set_capabilities(server->seat, server->seat_caps);
}
static void