}
}
+static void
+_e_policy_wl_cb_hook_alpha_change(void *data, E_Client *ec)
+{
+ if (!ec) return;
+ if (!ec->argb) return;
+ if (!ec->transients) return;
+ if (!e_policy_visibility_client_is_uniconify_render_running(ec)) return;
+
+ E_Client *child;
+ Eina_List *list = eina_list_clone(ec->transients);
+
+ EINA_LIST_FREE(list, child)
+ {
+ if (e_client_transient_policy_get(child) == E_TRANSIENT_BELOW)
+ {
+ ELOGF("POL_VIS", "Uniconify below child(win:%zx, ec:%p) by changing alpha", ec, e_client_util_win_get(child), child);
+ e_policy_client_uniconify_by_visibility(child);
+ }
+ }
+}
+
void
e_policy_wl_generate_request(E_Client *ec, E_Policy_Wl_Gen_Request type)
{
E_LIST_HANDLER_APPEND(handlers, E_EVENT_SCREENSAVER_OFF, _e_policy_wl_cb_scrsaver_off, NULL);
E_COMP_WL_HOOK_APPEND(hooks_cw, E_COMP_WL_HOOK_SHELL_SURFACE_READY, _e_policy_wl_cb_hook_shell_surface_ready, NULL);
+ E_COMP_WL_HOOK_APPEND(hooks_cw, E_COMP_WL_HOOK_CLIENT_ALPHA_CHANGE, _e_policy_wl_cb_hook_alpha_change, NULL);
E_EVENT_POLICY_INDICATOR_STATE_CHANGE = ecore_event_type_new();
E_EVENT_POLICY_INDICATOR_OPACITY_MODE_CHANGE = ecore_event_type_new();