X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fpolicy-default.c;h=8d70684158416772271107d91fb67970a54479cb;hb=4003cfb04b7bae04c321b274b4e1bfae1222a327;hp=bcfee6b046e5d6bcb2254c943ad04f0da4d77ff8;hpb=0a932bc7d66b062e6bf9cdbe40a2178ed47dd6c8;p=src%2Fagl-compositor.git diff --git a/src/policy-default.c b/src/policy-default.c index bcfee6b..8d70684 100644 --- a/src/policy-default.c +++ b/src/policy-default.c @@ -26,6 +26,12 @@ #include "ivi-compositor.h" #include "policy.h" +#ifdef HAVE_SMACK +#include +#endif + +#include + /* * default policy implementation allows every action to be possible * @@ -57,6 +63,13 @@ ivi_policy_default_surface_activate(struct ivi_surface *surf, void *user_data) return true; } +static bool +ivi_policy_default_surface_deactivate(struct ivi_surface *surf, void *user_data) +{ + /* verify that the surface should be de-activated to */ + return true; +} + static bool ivi_policy_default_surface_activate_default(struct ivi_surface *surf, void *user_data) { @@ -64,6 +77,22 @@ ivi_policy_default_surface_activate_default(struct ivi_surface *surf, void *user return true; } +static bool +ivi_policy_default_surface_advertise_state_change(struct ivi_surface *surf, void *user_data) +{ + /* verify that the surface should sent as notification */ + return true; +} + +/* we allow all applications to bind to private extensions. See the deny-all + * policy instead for how to retrieve the clients fd and its label to check + * against */ +static bool +ivi_policy_default_shell_bind_interface(void *client, void *interface) +{ + return true; +} + static bool ivi_policy_default_allow_to_add(void *user_data) { @@ -85,7 +114,7 @@ ivi_policy_default_try_event(struct ivi_a_policy *a_policy) ivi_layout_activate(a_policy->output, a_policy->app_id); break; case AGL_SHELL_POLICY_EVENT_HIDE: - /* FIXME: remove the active one, like basically unmap it? */ + ivi_layout_deactivate(a_policy->policy->ivi, a_policy->app_id); default: break; } @@ -96,7 +125,10 @@ 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_deactivate = ivi_policy_default_surface_deactivate, .surface_activate_by_default = ivi_policy_default_surface_activate_default, + .surface_advertise_state_change = ivi_policy_default_surface_advertise_state_change, + .shell_bind_interface = ivi_policy_default_shell_bind_interface, .policy_rule_allow_to_add = ivi_policy_default_allow_to_add, .policy_rule_try_event = ivi_policy_default_try_event, }; @@ -108,5 +140,6 @@ ivi_policy_init(struct ivi_compositor *ivi) if (!ivi->policy) return -1; + weston_log("Installing 'allow-all' policy engine\n"); return 0; }