_remote_provider_onscreen_parent_calculate(provider);
}
+static void
+_remote_provider_client_set(E_Client *ec, Eina_Bool set)
+{
+ if (!ec) return;
+ if ((e_object_is_del(E_OBJECT(ec)))) return;
+
+ ec->remote_surface.provider = set;
+}
+
static E_Comp_Wl_Remote_Provider *
_remote_provider_find(E_Client *ec)
{
}
}
+static void
+_remote_surface_client_set(E_Client *ec, Eina_Bool set)
+{
+ if (!ec) return;
+ if ((e_object_is_del(E_OBJECT(ec)))) return;
+
+ ec->remote_surface.consumer = set;
+}
+
static void
_remote_region_cb_mirror_del(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
tizen_remote_surface_send_missing(remote_surface->resource);
}
}
+
+ _remote_provider_client_set(provider->ec, EINA_FALSE);
_remote_provider_offscreen_set(provider, EINA_FALSE);
E_FREE(provider);
}
if (remote_surface->bind_ec)
_remote_surface_bind_client(remote_surface, NULL);
if (remote_surface->owner)
- eina_hash_del_by_key(_rsm->surface_hash, &remote_surface->owner);
+ {
+ eina_hash_del_by_key(_rsm->surface_hash, &remote_surface->owner);
+ _remote_surface_client_set(remote_surface->owner, EINA_FALSE);
+ }
E_FREE(remote_surface);
}
if (surface_resource)
owner = wl_resource_get_user_data(surface_resource);
+ if (remote_surface->owner)
+ _remote_surface_client_set(remote_surface->owner, EINA_FALSE);
+
remote_surface->owner = owner;
eina_hash_del_by_data(_rsm->surface_hash, remote_surface);
if (owner)
- eina_hash_add(_rsm->surface_hash, &owner, remote_surface);
+ {
+ eina_hash_add(_rsm->surface_hash, &owner, remote_surface);
+ _remote_surface_client_set(remote_surface->owner, EINA_TRUE);
+ }
if (remote_surface->provider)
_remote_provider_onscreen_parent_calculate(remote_surface->provider);
ec->pixmap, ec,
"PROVIDER", provider, resource);
+ _remote_provider_client_set(ec, EINA_TRUE);
_remote_provider_offscreen_set(provider, EINA_TRUE);
/* send resource id */