layout: Do not attempt to activate the surface on the remote output 51/24651/2
authorMarius Vlad <marius.vlad@collabora.com>
Fri, 5 Jun 2020 14:23:43 +0000 (17:23 +0300)
committerMarius Vlad <marius.vlad@collabora.com>
Mon, 15 Jun 2020 11:48:42 +0000 (14:48 +0300)
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

src/layout.c

index 325f712..a11aadc 100644 (file)
@@ -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;