{
E_Comp_Wl_Client_Data base;
- E_Compositor *compositor;
E_Client *ec;
struct ds_surface *ds_surface;
struct ds_surface_viewport *surface_viewport;
ELOGF("SURFACE", "Remove exportd ID(%d) from E_Surface(%p)", surface->ec, id, surface);
- if (surface->compositor)
+ if (!eina_hash_del(e_compositor->exported_surfaces, &id, surface))
{
- if (!eina_hash_del(surface->compositor->exported_surfaces, &id, surface))
- ERR("Failed to remove given id(%d) and surface(%p) from exported_surfaces(%p)",
- id, surface, surface->compositor->exported_surfaces);
- surface->compositor = NULL;
+ ERR("Failed to remove given id(%d) and surface(%p) from exported_surfaces(%p)",
+ id, surface, e_compositor->exported_surfaces);
}
wl_list_remove(&surface->exported_surface_destroy.link);
static void
_e_compositor_cb_new_exported_surface(struct wl_listener *listener, void *data)
{
- E_Compositor *compositor = wl_container_of(listener, compositor, new_exported_surface);
struct ds_tizen_exported_surface *exported_surface = data;
struct ds_surface *ds_surface = ds_tizen_exported_surface_get_surface(exported_surface);
E_Surface *surface = _e_surface_from_ds_surface(ds_surface);
_e_surface_exported_surface_set(surface, exported_surface);
- surface->compositor = compositor;
- eina_hash_add(compositor->exported_surfaces, &id, surface);
+ eina_hash_add(e_compositor->exported_surfaces, &id, surface);
}
static Eina_Bool
iter = eina_hash_iterator_data_new(comp->exported_surfaces);
EINA_ITERATOR_FOREACH(iter, surface)
- surface->compositor = NULL;
+ _e_surface_exported_surface_unset(surface);
eina_iterator_free(iter);
eina_hash_free(comp->exported_surfaces);