discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=608650a2b8916b34c6f868c0651211dadbc5d7d0
commit 608650a2b8916b34c6f868c0651211dadbc5d7d0 Author: Mike Blumenkrantz <zm...@osg.samsung.com> Date: Wed May 18 12:32:27 2016 -0400 fix e_place_zone_region_smart_cleanup() this function was adding the same client multiple times, failing to cleanup windows effectively, and misusing the skiplist functionality of e_place functions fix T3654 --- src/bin/e_place.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/bin/e_place.c b/src/bin/e_place.c index 3780c9d..e32210d 100644 --- a/src/bin/e_place.c +++ b/src/bin/e_place.c @@ -29,7 +29,7 @@ e_place_zone_region_smart_cleanup(E_Zone *zone) /* Insert the ec if larger than the current ec */ if (area >= testarea) { - clients = eina_list_prepend_relative(clients, ec2, ec); + clients = eina_list_prepend_relative_list(clients, ec, ll); break; } } @@ -41,10 +41,12 @@ e_place_zone_region_smart_cleanup(E_Zone *zone) /* Loop over the clients moving each one using the smart placement */ EINA_LIST_FREE(clients, ec) { - int new_x, new_y; + int new_x = zone->x, new_y = zone->y; + Eina_List *l = eina_list_append(NULL, ec); - e_place_zone_region_smart(zone, clients, ec->x, ec->y, + e_place_zone_region_smart(zone, l, zone->x, zone->y, ec->w, ec->h, &new_x, &new_y); + eina_list_free(l); evas_object_move(ec->frame, new_x, new_y); } } --