diff --git a/src/bin/e_border.c b/src/bin/e_border.c index 27fc9091d..cb3ffd4ff 100644 --- a/src/bin/e_border.c +++ b/src/bin/e_border.c @@ -8545,6 +8545,14 @@ _e_border_eval(E_Border *bd) if (bd->y < zy) bd->y = zy; + /* ensure we account for windows which already have client_inset; + * fixes lots of wine placement issues + */ + if (bd->x - bd->client_inset.l >= zx) + bd->x -= bd->client_inset.l; + if (bd->y - bd->client_inset.t >= zy) + bd->y -= bd->client_inset.t; + if (bd->x + bd->w > zx + zw) bd->x = zx + zw - bd->w; @@ -8563,7 +8571,6 @@ _e_border_eval(E_Border *bd) bd->changes.pos = 1; bd->placed = 1; } - _e_border_move_internal(bd, bd->x, bd->y, 1); } if (!bd->placed) {