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;
|
||||
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->maximized &= ~E_MAXIMIZE_TYPE;
|
||||
ec->maximized |= max;
|
||||
|
@ -3813,14 +3825,18 @@ e_client_maximize(E_Client *ec, E_Maximize max)
|
|||
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->changes.need_maximize) || (!ec->saved.x))
|
||||
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))
|
||||
{
|
||||
/* Vertical hasn't been set */
|
||||
ec->saved.y = ec->client.y - ec->zone->y;
|
||||
ec->saved.h = ec->client.h;
|
||||
if ((!ec->changes.need_maximize) || (!ec->saved.y))
|
||||
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;
|
||||
|
|
Loading…
Reference in New Issue