summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarius Vlad <marius.vlad@collabora.com>2020-06-05 17:23:43 +0300
committerMarius Vlad <marius.vlad@collabora.com>2020-06-15 14:48:42 +0300
commitc8d025cdb9b3a60f86ebe79065f848ebb3d45d3e (patch)
tree64e0952ce48a58be0962d68aa8b539081415ad70
parent168261297ce8d6e17ca69eb1de4d0e98de52eedc (diff)
layout: Do not attempt to activate the surface on the remote output
Once the view has been placed on remote output do not attempt to activate it on other output, as it would make quite confusing to have same view on multiple outputs. Bug-AGL: SPEC-3280 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I36a8df18a174e3d5fd5f49ff5bdf70f1a16c86cb
-rw-r--r--src/layout.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/layout.c b/src/layout.c
index 325f712..a11aadc 100644
--- a/src/layout.c
+++ b/src/layout.c
@@ -614,6 +614,16 @@ ivi_layout_activate(struct ivi_output *output, const char *app_id)
ivi_layout_surface_is_split_or_fullscreen(surf))
return;
+ if (surf->role == IVI_SURFACE_ROLE_REMOTE) {
+ struct ivi_output *remote_output =
+ ivi_layout_find_with_app_id(app_id, ivi);
+
+ /* if already active on a remote output do not
+ * attempt to activate it again */
+ if (remote_output && remote_output->active == surf)
+ return;
+ }
+
dsurf = surf->dsurface;
view = surf->view;