diff options
author | Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp> | 2015-06-22 15:31:39 +0900 |
---|---|---|
committer | Pekka Paalanen <pekka.paalanen@collabora.co.uk> | 2015-06-23 15:57:15 +0300 |
commit | db8efd1f267b4a749a3b22488f273613372f5a90 (patch) | |
tree | fffda38483685cbef810934e36382b55a92bb35e /ivi-shell/ivi-layout.c | |
parent | 82051705b50e93d988f27dfaea5d1af46e1b842b (diff) | |
download | weston-db8efd1f267b4a749a3b22488f273613372f5a90.tar.gz |
ivi-shell: add new method to remove a callback to get notificaiton of ivi_layer property changes.
To get property changes of ivi_layer, callbacks can be registered.
However there was no API to remove a callback rather than removing all
callbacks by using layer_remove_notification.
layer_remove_notification_by_callback can do it.
Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Acked-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Diffstat (limited to 'ivi-shell/ivi-layout.c')
-rw-r--r-- | ivi-shell/ivi-layout.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/ivi-shell/ivi-layout.c b/ivi-shell/ivi-layout.c index 6dc57233..bfd9d326 100644 --- a/ivi-shell/ivi-layout.c +++ b/ivi-shell/ivi-layout.c @@ -1883,6 +1883,19 @@ ivi_layout_layer_remove_notification(struct ivi_layout_layer *ivilayer) } static void +ivi_layout_layer_remove_notification_by_callback(struct ivi_layout_layer *ivilayer, + layer_property_notification_func callback, + void *userdata) +{ + if (ivilayer == NULL) { + weston_log("ivi_layout_layer_remove_notification_by_callback: invalid argument\n"); + return; + } + + remove_notification(&ivilayer->property_changed.listener_list, callback, userdata); +} + +static void ivi_layout_layer_remove(struct ivi_layout_layer *ivilayer) { struct ivi_layout *layout = get_instance(); @@ -2982,9 +2995,10 @@ static struct ivi_controller_interface ivi_controller_interface = { .surface_dump = ivi_layout_surface_dump, /** - * remove notification by callback on property changes of ivi_surface + * remove notification by callback on property changes of ivi_surface/layer */ - .surface_remove_notification_by_callback = ivi_layout_surface_remove_notification_by_callback + .surface_remove_notification_by_callback = ivi_layout_surface_remove_notification_by_callback, + .layer_remove_notification_by_callback = ivi_layout_layer_remove_notification_by_callback }; int |