X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fpolicy-default.c;h=fa22097860a2e942f7619637bd9fcf866a942b9a;hb=HEAD;hp=89b858a58be6e1026178495f9e93e4d4f00dd6df;hpb=58a3fe5c2923499160b270c7ef18a8004ee2f537;p=src%2Fagl-compositor.git diff --git a/src/policy-default.c b/src/policy-default.c index 89b858a..fa22097 100644 --- a/src/policy-default.c +++ b/src/policy-default.c @@ -26,6 +26,8 @@ #include "ivi-compositor.h" #include "policy.h" +#include + /* * default policy implementation allows every action to be possible * @@ -57,6 +59,36 @@ 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) +{ + /* verify that the surface should be switched to */ + 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) { @@ -78,7 +110,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; } @@ -89,6 +121,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, }; @@ -100,5 +136,6 @@ ivi_policy_init(struct ivi_compositor *ivi) if (!ivi->policy) return -1; + weston_log("Installing 'allow-all' policy engine\n"); return 0; }