forked from enlightenment/enlightenment
check changes.pos during client maximize/fullscreen and adjust window coords
using these coords when the changes.pos flag is set should result in more accurate results for positioning when removing the state
This commit is contained in:
parent
5b9dec214e
commit
d17fe0614e
|
@ -4063,14 +4063,22 @@ 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.pos)
|
||||||
|
e_comp_object_frame_xy_adjust(ec->frame, ec->x, 0, &ec->saved.x, NULL);
|
||||||
|
else
|
||||||
|
ec->saved.x = ec->client.x;
|
||||||
|
ec->saved.x -= ec->zone->x;
|
||||||
if (ec->visible)
|
if (ec->visible)
|
||||||
ec->saved.w = ec->client.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.pos)
|
||||||
|
e_comp_object_frame_xy_adjust(ec->frame, 0, ec->y, NULL, &ec->saved.y);
|
||||||
|
else
|
||||||
|
ec->saved.y = ec->client.y;
|
||||||
|
ec->saved.y -= ec->zone->y;
|
||||||
if (ec->visible)
|
if (ec->visible)
|
||||||
ec->saved.h = ec->client.h;
|
ec->saved.h = ec->client.h;
|
||||||
}
|
}
|
||||||
|
@ -4293,8 +4301,16 @@ e_client_fullscreen(E_Client *ec, E_Fullscreen policy)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ec->saved.x = ec->client.x - ec->zone->x;
|
if (ec->changes.pos)
|
||||||
ec->saved.y = ec->client.y - ec->zone->y;
|
e_comp_object_frame_xy_adjust(ec->frame, ec->x, ec->y, &ec->saved.x, &ec->saved.y);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ec->saved.x = ec->client.x;
|
||||||
|
ec->saved.y = ec->client.y;
|
||||||
|
}
|
||||||
|
ec->saved.x -= ec->zone->x;
|
||||||
|
ec->saved.y -= ec->zone->y;
|
||||||
|
|
||||||
if (ec->visible)
|
if (ec->visible)
|
||||||
{
|
{
|
||||||
ec->saved.w = ec->client.w;
|
ec->saved.w = ec->client.w;
|
||||||
|
|
Loading…
Reference in New Issue