From 1bb0de141fef88854ce07ef4bed8bc0c1d7fffee Mon Sep 17 00:00:00 2001 From: Marius Vlad Date: Mon, 1 Jun 2020 21:04:18 +0300 Subject: [PATCH] layout: Remove black surface when trying to use migrate views to other outputs We install a black surface in the fullscreen layer for each output, and we need to remove is before adding the new surfaces/views. We did that aleady for 'remote' type of surfaces when categorizing the type, but here we use the configuration file to determine the output, but we were missing the black surface for that output. This verifies that the black surface for that output is in use, and removes the black surface if so. Bug-AGL: SPEC-3280 Signed-off-by: Marius Vlad Change-Id: I3c4ae90ee0983bc424c932715d9a1ff082117bef --- src/layout.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/layout.c b/src/layout.c index fac7ab9..d1c1f75 100644 --- a/src/layout.c +++ b/src/layout.c @@ -324,6 +324,13 @@ ivi_layout_desktop_committed(struct ivi_surface *surf) /* check first if there aren't any outputs being set */ r_output = ivi_layout_find_app_id(app_id, surf->ivi); + if (r_output) { + struct weston_view *view = r_output->fullscreen_view.fs->view; + if (view->is_mapped || view->surface->is_mapped) + remove_black_surface(r_output); + } + + /* try finding an output with a background and use that */ if (!r_output) r_output = ivi_layout_find_bg_output(surf->ivi); -- 2.16.6