desktop-shell: Explicitly destroy black views on shutdown
desktop_shell_removed() won't get called when we shut down, so explicitly destroy the fullscreen black view. Signed-off-by: Daniel Stone <daniels@collabora.com>
This commit is contained in:
@@ -3644,7 +3644,6 @@ lower_fullscreen_layer(struct desktop_shell *shell,
|
|||||||
weston_layer_entry_remove(&shsurf->fullscreen.black_view->layer_link);
|
weston_layer_entry_remove(&shsurf->fullscreen.black_view->layer_link);
|
||||||
wl_list_init(&shsurf->fullscreen.black_view->layer_link.link);
|
wl_list_init(&shsurf->fullscreen.black_view->layer_link.link);
|
||||||
weston_view_damage_below(shsurf->fullscreen.black_view);
|
weston_view_damage_below(shsurf->fullscreen.black_view);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Lower the view to the workspace layer */
|
/* Lower the view to the workspace layer */
|
||||||
@@ -4847,6 +4846,7 @@ desktop_shell_destroy_views_on_layer(struct weston_layer *layer)
|
|||||||
wl_list_for_each_safe(view, view_next, &layer->view_list.link, layer_link.link) {
|
wl_list_for_each_safe(view, view_next, &layer->view_list.link, layer_link.link) {
|
||||||
struct shell_surface *shsurf =
|
struct shell_surface *shsurf =
|
||||||
get_shell_surface(view->surface);
|
get_shell_surface(view->surface);
|
||||||
|
|
||||||
/* fullscreen_layer is special as it would have a view with an
|
/* fullscreen_layer is special as it would have a view with an
|
||||||
* additional black_view created and added to its layer_link
|
* additional black_view created and added to its layer_link
|
||||||
* fullscreen view. See shell_ensure_fullscreen_black_view()
|
* fullscreen view. See shell_ensure_fullscreen_black_view()
|
||||||
@@ -4856,7 +4856,7 @@ desktop_shell_destroy_views_on_layer(struct weston_layer *layer)
|
|||||||
* we do it in desktop_surface_removed() */
|
* we do it in desktop_surface_removed() */
|
||||||
if (shsurf)
|
if (shsurf)
|
||||||
desktop_shell_destroy_surface(shsurf);
|
desktop_shell_destroy_surface(shsurf);
|
||||||
else
|
else if (is_black_surface_view(view, NULL))
|
||||||
weston_surface_destroy(view->surface);
|
weston_surface_destroy(view->surface);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user