shell: Let the output destroy handler handle layer fini 42/27442/1
authorMarius Vlad <marius.vlad@collabora.com>
Wed, 4 May 2022 06:54:20 +0000 (09:54 +0300)
committerMarius Vlad <marius.vlad@collabora.com>
Wed, 4 May 2022 08:25:00 +0000 (11:25 +0300)
This way we don't race with it. Part of 'shell: Added missing layer fini
calls'.

Bug-AGL: SPEC-4351
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I366364ba128ca1dacd3d3639a1b74b02f3ceef21

src/compositor.c
src/shell.c

index 2fb981b..5d8d300 100644 (file)
@@ -86,6 +86,7 @@ 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);
 }
index efcb102..d91570f 100644 (file)
@@ -784,15 +784,6 @@ ivi_shell_destroy_views_on_layer(struct weston_layer *layer)
        }
 }
 
-static void
-ivi_shell_destroy_views_on_fullscreen_layer(struct ivi_compositor *ivi)
-{
-       struct ivi_output *ivi_output;
-
-       wl_list_for_each(ivi_output, &ivi->outputs, link)
-               weston_surface_destroy(ivi_output->fullscreen_view.fs->view->surface);
-}
-
 void
 ivi_shell_finalize(struct ivi_compositor *ivi)
 {
@@ -810,9 +801,6 @@ ivi_shell_finalize(struct ivi_compositor *ivi)
 
        ivi_shell_destroy_views_on_layer(&ivi->popup);
        weston_layer_fini(&ivi->popup);
-
-       ivi_shell_destroy_views_on_fullscreen_layer(ivi);
-       weston_layer_fini(&ivi->fullscreen);
 }
 
 static void