summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/compositor.c1
-rw-r--r--src/shell.c10
2 files changed, 10 insertions, 1 deletions
diff --git a/src/compositor.c b/src/compositor.c
index 5d8d300..2fb981b 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -86,7 +86,6 @@ handle_output_destroy(struct wl_listener *listener, void *data)
output->fullscreen_view.fs->view = NULL;
}
- weston_layer_fini(&output->ivi->fullscreen);
output->output = NULL;
wl_list_remove(&output->output_destroy.link);
}
diff --git a/src/shell.c b/src/shell.c
index dc857fc..c6cae10 100644
--- a/src/shell.c
+++ b/src/shell.c
@@ -782,6 +782,8 @@ ivi_shell_destroy_views_on_layer(struct weston_layer *layer)
void
ivi_shell_finalize(struct ivi_compositor *ivi)
{
+ struct ivi_output *output;
+
ivi_shell_destroy_views_on_layer(&ivi->hidden);
weston_layer_fini(&ivi->hidden);
@@ -796,6 +798,14 @@ ivi_shell_finalize(struct ivi_compositor *ivi)
ivi_shell_destroy_views_on_layer(&ivi->popup);
weston_layer_fini(&ivi->popup);
+
+ wl_list_for_each(output, &ivi->outputs, link) {
+ if (output->fullscreen_view.fs->view) {
+ weston_surface_destroy(output->fullscreen_view.fs->view->surface);
+ output->fullscreen_view.fs->view = NULL;
+ }
+ }
+ weston_layer_fini(&ivi->fullscreen);
}
static void