static void
_e_policy_client_floating_policy_apply(E_Policy_Client *pc)
{
- E_Client *ec;
-
if (!pc) return;
if (pc->flt_policy_state) return;
pc->flt_policy_state = EINA_TRUE;
- ec = pc->ec;
-
-#undef _SET
-# define _SET(a) pc->orig.a = pc->ec->a
- _SET(fullscreen);
- _SET(lock_client_stacking);
- _SET(lock_user_shade);
- _SET(lock_client_shade);
- _SET(lock_user_maximize);
- _SET(lock_client_maximize);
- _SET(lock_user_fullscreen);
- _SET(lock_client_fullscreen);
-#undef _SET
-
- ec->skip_fullscreen = 1;
- ec->lock_client_stacking = 1;
- ec->lock_user_shade = 1;
- ec->lock_client_shade = 1;
- ec->lock_user_maximize = 1;
- ec->lock_client_maximize = 1;
- ec->lock_user_fullscreen = 1;
- ec->lock_client_fullscreen = 1;
}
static void
_e_policy_client_floating_policy_cancel(E_Policy_Client *pc)
{
- E_Client *ec;
- Eina_Bool changed = EINA_FALSE;
-
if (!pc) return;
if (!pc->flt_policy_state) return;
pc->flt_policy_state = EINA_FALSE;
- ec = pc->ec;
-
- if ((pc->orig.fullscreen != ec->fullscreen) &&
- (pc->orig.fullscreen))
- {
- ec->need_fullscreen = 1;
- changed = EINA_TRUE;
- }
-
- if (pc->orig.maximized != ec->maximized)
- {
- if (pc->orig.maximized)
- ec->changes.need_maximize = 1;
- else
- e_client_unmaximize(ec, ec->maximized);
-
- changed = EINA_TRUE;
- }
-
- ec->skip_fullscreen = 0;
-
-#undef _SET
-# define _SET(a) ec->a = pc->orig.a
- _SET(fullscreen);
- _SET(lock_client_stacking);
- _SET(lock_user_shade);
- _SET(lock_client_shade);
- _SET(lock_user_maximize);
- _SET(lock_client_maximize);
- _SET(lock_user_fullscreen);
- _SET(lock_client_fullscreen);
-#undef _SET
-
- if (changed)
- EC_CHANGED(pc->ec);
}
static void