summaryrefslogtreecommitdiff
path: root/ivi-layermanagement-api/ilmControl
diff options
context:
space:
mode:
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;
}