struct
{
struct wl_event_queue *queue;
- struct wl_seat *seat;
+ Eina_List *seat_list;
struct tizen_input_device_manager *devicemgr;
int request_notified;
int max_touch_count;
}
else if (strcmp(interface, "wl_seat") == 0)
{
- _eflutil.wl.devmgr.seat = wl_registry_bind(reg, id, &wl_seat_interface, version);
+ struct wl_seat *proto;
+ proto = wl_registry_bind(reg, id, &wl_seat_interface, version);
+ if (!proto) return;
+
+ _eflutil.wl.devmgr.seat_list = eina_list_append(_eflutil.wl.devmgr.seat_list, proto);
}
}
static void
_efl_util_wl_inputgen_deinit()
{
- if (_eflutil.wl.devmgr.seat)
+ struct wl_seat *proto;
+ Eina_List *l;
+
+ EINA_LIST_FOREACH (_eflutil.wl.devmgr.seat_list, l, proto)
{
- wl_seat_release(_eflutil.wl.devmgr.seat);
- _eflutil.wl.devmgr.seat = NULL;
+ wl_seat_release(proto);
wl_display_roundtrip_queue(_eflutil.wl.dpy, _eflutil.wl.devmgr.queue);
}
+ _eflutil.wl.devmgr.seat_list = eina_list_free(_eflutil.wl.devmgr.seat_list);
if (_eflutil.wl.devmgr.devicemgr)
{