forked from enlightenment/enlightenment
do not change E_Client->saved values during maximize if need_maximize is set
this is indicative of a deferred maximize, so don't re-set it and screw up previously-set values
This commit is contained in:
parent
b5ef8766f4
commit
9a9c09f514
|
@ -3798,6 +3798,18 @@ e_client_maximize(E_Client *ec, E_Maximize max)
|
||||||
((ec->maximized & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_BOTH)) return;
|
((ec->maximized & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_BOTH)) return;
|
||||||
if (ec->new_client)
|
if (ec->new_client)
|
||||||
{
|
{
|
||||||
|
if (!(ec->maximized & E_MAXIMIZE_HORIZONTAL))
|
||||||
|
{
|
||||||
|
/* Horizontal hasn't been set */
|
||||||
|
ec->saved.x = ec->client.x - ec->zone->x;
|
||||||
|
ec->saved.w = ec->client.w;
|
||||||
|
}
|
||||||
|
if (!(ec->maximized & E_MAXIMIZE_VERTICAL))
|
||||||
|
{
|
||||||
|
/* Vertical hasn't been set */
|
||||||
|
ec->saved.y = ec->client.y - ec->zone->y;
|
||||||
|
ec->saved.h = ec->client.h;
|
||||||
|
}
|
||||||
ec->changes.need_maximize = 1;
|
ec->changes.need_maximize = 1;
|
||||||
ec->maximized &= ~E_MAXIMIZE_TYPE;
|
ec->maximized &= ~E_MAXIMIZE_TYPE;
|
||||||
ec->maximized |= max;
|
ec->maximized |= max;
|
||||||
|
@ -3813,14 +3825,18 @@ e_client_maximize(E_Client *ec, E_Maximize max)
|
||||||
if (!(ec->maximized & E_MAXIMIZE_HORIZONTAL))
|
if (!(ec->maximized & E_MAXIMIZE_HORIZONTAL))
|
||||||
{
|
{
|
||||||
/* Horizontal hasn't been set */
|
/* Horizontal hasn't been set */
|
||||||
ec->saved.x = ec->client.x - ec->zone->x;
|
if ((!ec->changes.need_maximize) || (!ec->saved.x))
|
||||||
ec->saved.w = ec->client.w;
|
ec->saved.x = ec->client.x - ec->zone->x;
|
||||||
|
if ((!ec->changes.need_maximize) || (!ec->saved.w))
|
||||||
|
ec->saved.w = ec->client.w;
|
||||||
}
|
}
|
||||||
if (!(ec->maximized & E_MAXIMIZE_VERTICAL))
|
if (!(ec->maximized & E_MAXIMIZE_VERTICAL))
|
||||||
{
|
{
|
||||||
/* Vertical hasn't been set */
|
/* Vertical hasn't been set */
|
||||||
ec->saved.y = ec->client.y - ec->zone->y;
|
if ((!ec->changes.need_maximize) || (!ec->saved.y))
|
||||||
ec->saved.h = ec->client.h;
|
ec->saved.y = ec->client.y - ec->zone->y;
|
||||||
|
if ((!ec->changes.need_maximize) || (!ec->saved.h))
|
||||||
|
ec->saved.h = ec->client.h;
|
||||||
}
|
}
|
||||||
|
|
||||||
ec->saved.zone = ec->zone->num;
|
ec->saved.zone = ec->zone->num;
|
||||||
|
|
Loading…
Reference in New Issue