static void _e_policy_client_maximize_policy_cancel(E_Policy_Client *pc);
static void _e_policy_client_floating_policy_apply(E_Policy_Client *pc);
static void _e_policy_client_floating_policy_cancel(E_Policy_Client *pc);
-static void _e_policy_client_split_policy_apply(E_Policy_Client *pc);
-static void _e_policy_client_split_policy_cancel(E_Policy_Client *pc);
static void _e_policy_client_launcher_set(E_Policy_Client *pc);
static void _e_policy_cb_hook_client_eval_pre_new_client(void *d EINA_UNUSED, E_Client *ec);
pc->flt_policy_state = EINA_FALSE;
}
-static void
-_e_policy_client_split_policy_apply(E_Policy_Client *pc)
-{
- E_Client *ec;
-
- if (!pc) return;
- if (pc->split_policy_state) return;
-
- pc->split_policy_state = EINA_TRUE;
- ec = pc->ec;
-
-#undef _SET
-# define _SET(a) pc->orig.a = pc->ec->a
- _SET(borderless);
- _SET(fullscreen);
- _SET(maximized);
- _SET(lock_user_location);
- _SET(lock_client_location);
- _SET(lock_user_size);
- _SET(lock_client_size);
- _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 (!ec->borderless)
- {
- ec->borderless = 1;
- ec->border.changed = 1;
- EC_CHANGED(pc->ec);
- }
-
- /* do not allow client to change these properties */
- ec->lock_user_location = 1;
- ec->lock_client_location = 1;
- ec->lock_user_size = 1;
- ec->lock_client_size = 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;
- ec->skip_fullscreen = 1;
-}
-
-static void
-_e_policy_client_split_policy_cancel(E_Policy_Client *pc)
-{
- E_Client *ec;
- Eina_Bool changed = EINA_FALSE;
-
- if (!pc) return;
- if (!pc->split_policy_state) return;
-
- pc->split_policy_state = EINA_FALSE;
- ec = pc->ec;
-
- if (pc->orig.borderless != ec->borderless)
- {
- ec->border.changed = 1;
- changed = EINA_TRUE;
- }
-
- 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;
- }
-#undef _SET
-# define _SET(a) ec->a = pc->orig.a
- _SET(borderless);
- _SET(fullscreen);
- _SET(maximized);
- _SET(lock_user_location);
- _SET(lock_client_location);
- _SET(lock_user_size);
- _SET(lock_client_size);
- _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 = 0;
-
- /* only set it if the border is changed or fullscreen/maximize has changed */
- if (changed)
- EC_CHANGED(pc->ec);
-}
-
E_Config_Policy_Desk *
_e_policy_desk_get_by_num(unsigned int zone_num, int x, int y)
{
if (pc->flt_policy_state)
_e_policy_client_floating_policy_cancel(pc);
- if (pc->split_policy_state)
- _e_policy_client_split_policy_cancel(pc);
-
_e_policy_client_maximize_policy_apply(pc);
}