diff options
-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, }; |