summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNobuhiko Tanibata <NOBUHIKO_TANIBATA@denso.co.jp>2013-12-26 13:55:30 +0900
committerNobuhiko Tanibata <NOBUHIKO_TANIBATA@denso.co.jp>2014-01-08 16:32:36 +0900
commit0109f1e319765acf518569c0fc5d6c9db9815221 (patch)
tree22122d39ce9841c27be9c95983c37444195d312b
parent7def4e9735ca23093db479c279851630217da61b (diff)
downloadwayland-ivi-extension-0109f1e319765acf518569c0fc5d6c9db9815221.tar.gz
weston-ivi-shell: Bug fix. surface info in ivi-controller is remained
even if ivisurface is removed by weston-layout. Signed-off-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@denso.co.jp>
-rwxr-xr-xweston-ivi-shell/src/ivi-controller.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/weston-ivi-shell/src/ivi-controller.c b/weston-ivi-shell/src/ivi-controller.c
index 5b74cbe..26dfa0a 100755
--- a/weston-ivi-shell/src/ivi-controller.c
+++ b/weston-ivi-shell/src/ivi-controller.c
@@ -1398,8 +1398,21 @@ surface_event_remove(struct weston_layout_surface *layout_surface,
{
struct ivishell *shell = userdata;
struct ivicontroller_surface *ctrlsurf = NULL;
+ struct ivisurface *ivisurf = NULL;
+ struct ivisurface *next = NULL;
uint32_t id_surface = 0;
+ wl_list_for_each_safe(ivisurf, next, &shell->list_surface, link) {
+ if (layout_surface != ivisurf->layout_surface) {
+ continue;
+ }
+
+ wl_list_remove(&ivisurf->link);
+ free(ivisurf);
+ ivisurf = NULL;
+ break;
+ }
+
id_surface = weston_layout_getIdOfSurface(layout_surface);
wl_list_for_each(ctrlsurf, &shell->list_controller_surface, link) {