From 9d29ef9fdb4a236affaec23f050baad0cfca3659 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 it 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 57992ca..079325e 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