discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=10c43efc831edf771e198604ed5fffbe25c2fb5c
commit 10c43efc831edf771e198604ed5fffbe25c2fb5c Author: Mike Blumenkrantz <zm...@osg.samsung.com> Date: Mon Jan 25 13:45:47 2016 -0500 fill zone obstacles on x/y axis during useful geometry recalc this fixes an issue where shrinking vertical shelves would cause vertically maximized windows to always match the height of the shelf possibly needs improving later depending on usage of zone obstacles in the future... --- src/bin/e_zone.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/bin/e_zone.c b/src/bin/e_zone.c index 2d02fd2..6c46822 100644 --- a/src/bin/e_zone.c +++ b/src/bin/e_zone.c @@ -1239,7 +1239,10 @@ _e_zone_useful_geometry_calc(const E_Zone *zone, int dx, int dy, int *x, int *y, EINA_INLIST_FOREACH(zone->obstacles, obs) { if (!E_INTERSECTS(obs->x, obs->y, obs->w, obs->h, zx, zy, zw, zh)) continue; - eina_tiler_rect_del(tiler, &(Eina_Rectangle){obs->x - zx, obs->y - zy, obs->w, obs->h}); + if (obs->w >= obs->h) + eina_tiler_rect_del(tiler, &(Eina_Rectangle){0, obs->y - zy, zw, obs->h}); + else + eina_tiler_rect_del(tiler, &(Eina_Rectangle){obs->x - zx, 0, obs->w, zh}); } desk = e_desk_at_xy_get(zone, dx, dy); if (desk) @@ -1247,7 +1250,10 @@ _e_zone_useful_geometry_calc(const E_Zone *zone, int dx, int dy, int *x, int *y, EINA_INLIST_FOREACH(desk->obstacles, obs) { if (!E_INTERSECTS(obs->x, obs->y, obs->w, obs->h, zx, zy, zw, zh)) continue; - eina_tiler_rect_del(tiler, &(Eina_Rectangle){obs->x - zx, obs->y - zy, obs->w, obs->h}); + if (obs->w >= obs->h) + eina_tiler_rect_del(tiler, &(Eina_Rectangle){0, obs->y - zy, zw, obs->h}); + else + eina_tiler_rect_del(tiler, &(Eina_Rectangle){obs->x - zx, 0, obs->w, zh}); } } it = eina_tiler_iterator_new(tiler); --