summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>2014-06-04 04:17:51 +0900
committerNobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>2014-06-08 23:27:53 +0900
commit1092e2cfd9011ea0ffdd7daeb75c3b148c89dfcc (patch)
tree8a1ce2d31ff15eed2742155b916266d0d4d74680
parent9ed6b82fa6d00d8df531d0a501264a10f0d27e9a (diff)
downloadweston-1092e2cfd9011ea0ffdd7daeb75c3b148c89dfcc.tar.gz
Clear notification callbacks when ivi_layout_layer destroyed.
Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
-rw-r--r--ivi-shell/ivi-layout.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/ivi-shell/ivi-layout.c b/ivi-shell/ivi-layout.c
index 8a744bba..35b82a52 100644
--- a/ivi-shell/ivi-layout.c
+++ b/ivi-shell/ivi-layout.c
@@ -277,6 +277,9 @@ remove_link_to_surface(struct ivi_layout_layer *ivilayer)
if (!wl_list_empty(&link->link_to_layer)) {
wl_list_remove(&link->link_to_layer);
}
+ if (!wl_list_empty(&link->link)) {
+ wl_list_remove(&link->link);
+ }
free(link);
}
@@ -1357,7 +1360,6 @@ ivi_layout_surfaceRemove(struct ivi_layout_surface *ivisurf)
wl_list_remove(&ivisurf->link);
}
remove_ordersurface_from_layer(ivisurf);
- ivi_layout_surfaceRemoveNotification(ivisurf);
wl_list_for_each(notification,
&layout->surface_notification.list_remove, link) {
@@ -1365,6 +1367,7 @@ ivi_layout_surfaceRemove(struct ivi_layout_surface *ivisurf)
notification->callback(ivisurf, notification->userdata);
}
}
+ ivi_layout_surfaceRemoveNotification(ivisurf);
free(ivisurf);
@@ -1729,6 +1732,7 @@ ivi_layout_layerRemove(struct ivi_layout_layer *ivilayer)
}
remove_orderlayer_from_screen(ivilayer);
remove_link_to_surface(ivilayer);
+ ivi_layout_layerRemoveNotification(ivilayer);
free(ivilayer);