static void
_e_comp_wl_input_cb_unbind_seat(struct wl_resource *resource)
{
- E_Comp_Wl_Seat *seat = wl_resource_get_user_data(resource);
-
DBG("Unbind seat: %u (client: %p)", wl_resource_get_id(resource), wl_resource_get_client(resource));
e_comp_wl->seat.resources =
eina_list_remove(e_comp_wl->seat.resources, resource);
- E_FREE(seat);
}
static void
_e_comp_wl_input_cb_bind_seat(struct wl_client *client, void *data EINA_UNUSED, uint32_t version, uint32_t id)
{
struct wl_resource *res;
- Eina_List *l;
- struct wl_resource *tmp_res;
- E_Comp_Wl_Seat *seat;
-
- seat = E_NEW(E_Comp_Wl_Seat, 1);
- if (!seat)
- {
- ERR("Failed to allocate memory for seat data\n");
- wl_client_post_no_memory(client);
- return;
- }
- seat->is_first_resource = 1;
-
- EINA_LIST_FOREACH(e_comp_wl->seat.resources, l, tmp_res)
- {
- if (wl_resource_get_client(tmp_res) != client) continue;
- DBG("wl_seat (res: %d) is already bound to client (%p)",
- wl_resource_get_id(tmp_res), client);
- seat->is_first_resource = 0;
- break;
- }
res = wl_resource_create(client, &wl_seat_interface, version, id);
if (!res)
{
ERR("Could not create seat resource: %m");
- E_FREE(seat);
return;
}
DBG("Bind seat: %u (client: %p)", wl_resource_get_id(res), client);
eina_list_append(e_comp_wl->seat.resources, res);
wl_resource_set_implementation(res, &_e_seat_interface,
- seat,
+ NULL,
_e_comp_wl_input_cb_unbind_seat);
_e_comp_wl_input_update_seat_caps(client);
{
seat_data = wl_resource_get_user_data(seat_res);
if (!seat_data) continue;
- if (!seat_data->is_first_resource)
- {
- DMDBG("The seat (res:%d) is not the first resource bound to client (%p)",
- wl_resource_get_id(seat_res), wl_resource_get_client(seat_res));
- continue;
- }
wc = wl_resource_get_client(seat_res);
{
dev_mgr_res = mgr_data->resource;
if (wl_resource_get_client(dev_mgr_res) != wc) continue;
- if (!mgr_data->is_first_resource)
- {
- DMDBG("This device_manager (res:%d) not the first resource bound to client (%p)",
- wl_resource_get_id(dev_mgr_res), wc);
- continue;
- }
+
res = wl_resource_create(wc, &tizen_input_device_interface, 1, 0);
if (!res)
{
E_Devicemgr_Input_Device *dev;
struct wl_array axes;
E_Devicemgr_Input_Device_User_Data *device_user_data;
- E_Devicemgr_Input_Device_Mgr_Data *mgr_data, *tmp_data;
+ E_Devicemgr_Input_Device_Mgr_Data *mgr_data;
mgr_data = E_NEW(E_Devicemgr_Input_Device_Mgr_Data, 1);
if (!mgr_data)
wl_client_post_no_memory(client);
return;
}
- mgr_data->is_first_resource = 1;
-
- EINA_LIST_FOREACH(e_devicemgr->wl_data->mgr_data_list, l, tmp_data)
- {
- if (wl_resource_get_client(tmp_data->resource) != client) continue;
- DMDBG("tizen_input_device_manager (res: %d) is already bound to client (%p)",
- wl_resource_get_id(tmp_data->resource), client);
- mgr_data->is_first_resource = 0;
- break;
- }
if (!(res = wl_resource_create(client, &tizen_input_device_manager_interface, version, id)))
{
return;
}
- DMDBG("Bind tizen_input_device_manager: %u (client: %p)", wl_resource_get_id(res), wl_resource_get_client(res));
+ DMINF("Bind tizen_input_device_manager: %u (client: %p)", wl_resource_get_id(res), wl_resource_get_client(res));
mgr_data->resource = res;
mgr_data->user_data_list = NULL;
e_devicemgr_wl_touch_max_count_send(e_devicemgr->max_touch_count, res, seat_res);
}
- if (!mgr_data->is_first_resource)
- {
- DMDBG("This device_manager (res:%d) is not the first resource bound to client (%p)",
- wl_resource_get_id(res), client);
- continue;
- }
-
g_rec_mutex_lock(&e_devicemgr->device_list_mutex);
EINA_LIST_FOREACH(e_devicemgr->device_list, ll, dev)
{