diff options
author | Shingo Fujita <sfujita@jp.adit-jv.com> | 2015-07-27 17:13:16 +0900 |
---|---|---|
committer | Nobuhiko Tanibata <nobuhiko_tanibata@xddp.denso.co.jp> | 2015-07-29 12:56:52 +0900 |
commit | 1d5b1351ea1fc45856fe282cd321f38110349a37 (patch) | |
tree | ecce0767812a332e795cf9dc6cf451fbd40c9538 /ivi-layermanagement-api/ilmControl | |
parent | d01c1eb504083e6a521d187cb8344a9b4f43b157 (diff) | |
download | wayland-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.c | 14 |
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; } |