diff options
author | Marius Vlad <marius.vlad@collabora.com> | 2020-03-06 22:51:10 +0200 |
---|---|---|
committer | Marius Vlad <marius.vlad@collabora.com> | 2020-03-11 16:44:10 +0200 |
commit | 0a932bc7d66b062e6bf9cdbe40a2178ed47dd6c8 (patch) | |
tree | 99a1e8c7637981bda0cd8520e444d911a1bc7b2a | |
parent | 58a3fe5c2923499160b270c7ef18a8004ee2f537 (diff) |
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 <marius.vlad@collabora.com>
Change-Id: Ic0f1a7db93df480d263db8240592f65a8864ccd6
-rw-r--r-- | src/layout.c | 9 | ||||
-rw-r--r-- | 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 @@ -58,6 +58,13 @@ ivi_policy_default_surface_activate(struct ivi_surface *surf, void *user_data) } 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) { /* verify that policy rules can be added with ivi_policy_add() */ @@ -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, }; |