only save client size info on maximize/fullscreen when protocol visible

a client which begins in one of these states must set its size again when
removing the state
This commit is contained in:
Mike Blumenkrantz 2017-03-10 15:57:15 -05:00
parent 171aebbff1
commit db62cf1020
1 changed files with 9 additions and 4 deletions

View File

@ -3797,13 +3797,15 @@ e_client_maximize(E_Client *ec, E_Maximize max)
{ {
/* Horizontal hasn't been set */ /* Horizontal hasn't been set */
ec->saved.x = ec->client.x - ec->zone->x; ec->saved.x = ec->client.x - ec->zone->x;
ec->saved.w = ec->client.w; if (ec->visible)
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; ec->saved.y = ec->client.y - ec->zone->y;
ec->saved.h = ec->client.h; if (ec->visible)
ec->saved.h = ec->client.h;
} }
ec->saved.zone = ec->zone->num; ec->saved.zone = ec->zone->num;
@ -4026,8 +4028,11 @@ e_client_fullscreen(E_Client *ec, E_Fullscreen policy)
{ {
ec->saved.x = ec->client.x - ec->zone->x; ec->saved.x = ec->client.x - ec->zone->x;
ec->saved.y = ec->client.y - ec->zone->y; ec->saved.y = ec->client.y - ec->zone->y;
ec->saved.w = ec->client.w; if (ec->visible)
ec->saved.h = ec->client.h; {
ec->saved.w = ec->client.w;
ec->saved.h = ec->client.h;
}
} }
ec->saved.maximized = ec->maximized; ec->saved.maximized = ec->maximized;
ec->saved.zone = ec->zone->num; ec->saved.zone = ec->zone->num;