From bbff627334199610e382e38efec73a6d3e7eed94 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Tue, 22 Jan 2013 08:39:10 +0000 Subject: [PATCH] better fix for initial placement of wine windows, also fixes bug where windows would be placed slightly offscreen SVN revision: 83059 --- src/bin/e_border.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/bin/e_border.c b/src/bin/e_border.c index b5484a91d..aa11e8cd9 100644 --- a/src/bin/e_border.c +++ b/src/bin/e_border.c @@ -8552,6 +8552,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; @@ -8577,18 +8585,13 @@ _e_border_eval(E_Border *bd) (abs((bd->zone->container->h / 2) - bd->y - (bd->h / 2)) < 3))) //bd->y - bd->h/2 is center of container ) e_border_center(bd); - else - _e_border_move_internal(bd, bd->x, bd->y, 1); } - else - _e_border_move_internal(bd, bd->x, bd->y, 1); bd->changes.pos = 1; bd->placed = 1; } } else { - _e_border_move_internal(bd, bd->x, bd->y, 1); bd->changes.pos = 1; bd->placed = 1; }