diff options
author | 2020-03-26 23:24:48 +0200 | |
---|---|---|
committer | 2020-04-14 13:00:56 +0300 | |
commit | fcd71e034d378921e0408a69dedcd8d0f4836401 (patch) | |
tree | bd2cde9b4781ceac61624c503074c08332fa8088 /src/layout.c | |
parent | 1ee1bff64338dede1f72981a6f3787718ce47335 (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.c | 9 |
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; |