summaryrefslogtreecommitdiff
path: root/ivi-layermanagement-api/ilmControl
diff options
context:
space:
mode:
authorShingo Fujita <sfujita@jp.adit-jv.com>2015-07-27 17:13:16 +0900
committerNobuhiko Tanibata <nobuhiko_tanibata@xddp.denso.co.jp>2015-07-29 12:56:52 +0900
commit1d5b1351ea1fc45856fe282cd321f38110349a37 (patch)
treeecce0767812a332e795cf9dc6cf451fbd40c9538 /ivi-layermanagement-api/ilmControl
parentd01c1eb504083e6a521d187cb8344a9b4f43b157 (diff)
downloadwayland-ivi-extension-1d5b1351ea1fc45856fe282cd321f38110349a37.tar.gz
ilm_registerNotification: ilm_registerNotification invokes callback with a layer and surface which are already created before callback registration.
Signed-off-by: Nobuhiko Tanibata <nobuhiko_tanibata@xddp.denso.co.jp>
Diffstat (limited to 'ivi-layermanagement-api/ilmControl')
-rw-r--r--ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c b/ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c
index d23354e..4b4888f 100644
--- a/ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c
+++ b/ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c
@@ -2360,10 +2360,24 @@ ILM_EXPORT ilmErrorTypes
ilm_registerNotification(notificationFunc callback, void *user_data)
{
struct ilm_control_context *ctx = sync_and_acquire_instance();
+ struct layer_context *ctx_layer = NULL;
+ struct surface_context *ctx_surf = NULL;
ctx->wl.notification = callback;
ctx->wl.notification_user_data = user_data;
+ if (callback != NULL) {
+ wl_list_for_each(ctx_layer, &ctx->wl.list_layer, link) {
+ if (ctx_layer->controller) {
+ callback(ILM_LAYER, ctx_layer->id_layer, ILM_TRUE, user_data);
+ }
+ }
+ wl_list_for_each(ctx_surf, &ctx->wl.list_surface, link) {
+ if (ctx_surf->controller) {
+ callback(ILM_SURFACE, ctx_surf->id_surface, ILM_TRUE, user_data);
+ }
+ }
+ }
release_instance();
return ILM_SUCCESS;
}