summaryrefslogtreecommitdiffstats
path: root/src/layout.c
diff options
context:
space:
mode:
authorMarius Vlad <marius.vlad@collabora.com>2020-03-26 23:24:48 +0200
committerMarius Vlad <marius.vlad@collabora.com>2020-04-14 13:00:56 +0300
commitfcd71e034d378921e0408a69dedcd8d0f4836401 (patch)
treebd2cde9b4781ceac61624c503074c08332fa8088 /src/layout.c
parent1ee1bff64338dede1f72981a6f3787718ce47335 (diff)
layout: Mark activated surface by default
Necessary to avoid client surfaces that continuously update their contents (i.e., a video) to effectively nullify a valid activate_app request, causing a short flip for the new client surfaces, but resume back once the first surface updated its contents. Bug-AGL: SPEC-3297 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I450dc58d2fa0202f42b7ab58216db98a1bbbf178
Diffstat (limited to 'src/layout.c')
-rw-r--r--src/layout.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/layout.c b/src/layout.c
index 94327c4..9537034 100644
--- a/src/layout.c
+++ b/src/layout.c
@@ -251,7 +251,12 @@ ivi_layout_desktop_committed(struct ivi_surface *surf)
if (!surf->ivi->quirks.activate_apps_by_default)
return;
+
skip_config_check:
+ /* we can only activate it again by using the protocol */
+ if (surf->activated_by_default)
+ return;
+
ivi_bg_output = ivi_layout_find_bg_output(surf->ivi);
/* use the output of the bg to activate the app on start-up by
@@ -259,8 +264,10 @@ skip_config_check:
if (surf->view && ivi_bg_output) {
const char *app_id =
weston_desktop_surface_get_app_id(dsurf);
- if (app_id && ivi_bg_output)
+ if (app_id && ivi_bg_output) {
ivi_layout_activate(ivi_bg_output, app_id);
+ surf->activated_by_default = true;
+ }
}
return;