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
surface->ivi = ivi;
surface->dsurface = dsurface;
surface->role = IVI_SURFACE_ROLE_NONE;
+ surface->activated_by_default = false;
if (ivi->policy && ivi->policy->api.surface_create &&
!ivi->policy->api.surface_create(surface, ivi)) {
int32_t x, y;
int32_t width, height;
} pending;
+ bool activated_by_default;
enum ivi_surface_role role;
union {
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
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;