force window resize when pixmap comes back with a size that doesn't match the client window

this causes comp to refetch the pixmap again with the correct size and allows windows which were shaded across a restart to be unshaded
This commit is contained in:
Mike Blumenkrantz 2013-05-10 11:11:35 +01:00
parent 053a14197e
commit 727cd45b5c
1 changed files with 11 additions and 1 deletions

View File

@ -497,7 +497,17 @@ _e_comp_win_geometry_update(E_Comp_Win *cw)
else if (cw->bd)
{
if (((!cw->bd->shaded) && (!cw->bd->shading)) && cw->pw && cw->ph)
w = cw->pw + cw->bd->client_inset.l + cw->bd->client_inset.r, h = cw->ph + cw->bd->client_inset.t + cw->bd->client_inset.b;
{
w = cw->pw + cw->bd->client_inset.l + cw->bd->client_inset.r, h = cw->ph + cw->bd->client_inset.t + cw->bd->client_inset.b;
if ((cw->pw != cw->bd->client.w) || (cw->ph != cw->bd->client.h))
{
/* something fucked us and the pixmap came back with the wrong size
* fix it by forcing a resize in e_border
*/
BD_CHANGED(cw->bd);
cw->bd->changes.size = 1;
}
}
else
w = cw->bd->w, h = cw->bd->h;
}