diff options
author | Nobuhiko Tanibata <NOBUHIKO_TANIBATA@denso.co.jp> | 2013-12-26 13:55:30 +0900 |
---|---|---|
committer | Nobuhiko Tanibata <NOBUHIKO_TANIBATA@denso.co.jp> | 2014-01-08 16:32:36 +0900 |
commit | 0109f1e319765acf518569c0fc5d6c9db9815221 (patch) | |
tree | 22122d39ce9841c27be9c95983c37444195d312b | |
parent | 7def4e9735ca23093db479c279851630217da61b (diff) | |
download | wayland-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-x | weston-ivi-shell/src/ivi-controller.c | 13 |
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) { |