add maximize_override client flag

sometimes you just want to do stuff on a client without any maximize logic applying!
This commit is contained in:
Mike Blumenkrantz 2014-02-12 20:37:52 -05:00
parent aa37188e02
commit d80dbc1a35
2 changed files with 10 additions and 6 deletions

View File

@ -679,6 +679,7 @@ struct E_Client
Eina_Bool layer_block : 1; // client is doing crazy stuff and should not be relayered in protocol
Eina_Bool ignored : 1; // client is comp-ignored
Eina_Bool no_shape_cut : 1; // client shape should not be cut
Eina_Bool maximize_override : 1; // client is doing crazy stuff and should "just do it" when moving/resizing
};
#define e_client_focus_policy_click(ec) \

View File

@ -694,13 +694,16 @@ _e_comp_intercept_move(void *data, Evas_Object *obj, int x, int y)
cw->ec->x = x, cw->ec->y = y;
return;
}
if ((cw->ec->maximized & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_VERTICAL)
y = cw->y;
if ((cw->ec->maximized & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_HORIZONTAL)
x = cw->x;
if (!cw->ec->maximize_override)
{
if ((cw->ec->maximized & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_VERTICAL)
y = cw->y;
if ((cw->ec->maximized & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_HORIZONTAL)
x = cw->x;
}
ix = x + cw->client_inset.l;
iy = y + cw->client_inset.t;
if (cw->ec->maximized && ((cw->ec->x != x) || (cw->ec->y != y)) &&
if (cw->ec->maximized && (!cw->ec->maximize_override) && ((cw->ec->x != x) || (cw->ec->y != y)) &&
((cw->ec->maximized & E_MAXIMIZE_DIRECTION) != E_MAXIMIZE_VERTICAL) &&
((cw->ec->maximized & E_MAXIMIZE_DIRECTION) != E_MAXIMIZE_HORIZONTAL))
{
@ -751,7 +754,7 @@ _e_comp_intercept_resize(void *data, Evas_Object *obj, int w, int h)
/* calculate client size */
iw = w - cw->client_inset.l - cw->client_inset.r;
ih = h - cw->client_inset.t - cw->client_inset.b;
if (cw->ec->maximized && ((cw->ec->w != w) || (cw->ec->h != h)))
if (cw->ec->maximized && (!cw->ec->maximize_override) && ((cw->ec->w != w) || (cw->ec->h != h)))
{
if ((!e_config->allow_manip) && ((cw->ec->maximized & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_BOTH)) return;
if ((!cw->ec->shading) && (!cw->ec->shaded))