diff options
author | Marius Vlad <marius.vlad@collabora.com> | 2020-06-01 21:04:18 +0300 |
---|---|---|
committer | Jan-Simon Moeller <jsmoeller@linuxfoundation.org> | 2020-06-15 10:08:51 +0000 |
commit | 9d29ef9fdb4a236affaec23f050baad0cfca3659 (patch) | |
tree | f10674ba216d546721dae5d985eea206791c9add | |
parent | 8df7681a823e5e6f7ead5150abf65dd84d05aecd (diff) |
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 <marius.vlad@collabora.com>
Change-Id: I3c4ae90ee0983bc424c932715d9a1ff082117bef
-rw-r--r-- | src/layout.c | 7 |
1 files changed, 7 insertions, 0 deletions
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); |