From 0a932bc7d66b062e6bf9cdbe40a2178ed47dd6c8 Mon Sep 17 00:00:00 2001 From: Marius Vlad Date: Fri, 6 Mar 2020 22:51:10 +0200 Subject: layout: Allow by default to activate the application Installs, for the default policy, a callback that allows it. Bug-AGL: SPEC-3217 Signed-off-by: Marius Vlad Change-Id: Ic0f1a7db93df480d263db8240592f65a8864ccd6 --- src/layout.c | 9 ++++++--- src/policy-default.c | 8 ++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/layout.c b/src/layout.c index b531ed1..94327c4 100644 --- a/src/layout.c +++ b/src/layout.c @@ -243,12 +243,15 @@ ivi_layout_desktop_committed(struct ivi_surface *surf) output = surf->desktop.pending_output; if (!output) { struct ivi_output *ivi_bg_output; + struct ivi_policy *policy = surf->ivi->policy; + + if (policy && policy->api.surface_activate_by_default) + if (policy->api.surface_activate_by_default(surf, surf->ivi)) + goto skip_config_check; - /* FIXME: This should be changed to determine if the policy - * database allows that to happen */ if (!surf->ivi->quirks.activate_apps_by_default) return; - +skip_config_check: ivi_bg_output = ivi_layout_find_bg_output(surf->ivi); /* use the output of the bg to activate the app on start-up by diff --git a/src/policy-default.c b/src/policy-default.c index 89b858a..bcfee6b 100644 --- a/src/policy-default.c +++ b/src/policy-default.c @@ -57,6 +57,13 @@ ivi_policy_default_surface_activate(struct ivi_surface *surf, void *user_data) return true; } +static bool +ivi_policy_default_surface_activate_default(struct ivi_surface *surf, void *user_data) +{ + /* verify that the surface should be switched to */ + return true; +} + static bool ivi_policy_default_allow_to_add(void *user_data) { @@ -89,6 +96,7 @@ static const struct ivi_policy_api policy_api = { .surface_create = ivi_policy_default_surface_create, .surface_commited = ivi_policy_default_surface_commmited, .surface_activate = ivi_policy_default_surface_activate, + .surface_activate_by_default = ivi_policy_default_surface_activate_default, .policy_rule_allow_to_add = ivi_policy_default_allow_to_add, .policy_rule_try_event = ivi_policy_default_try_event, }; -- cgit 1.2.3-korg