summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2016-05-18 12:32:27 -0400
committerMike Blumenkrantz <zmike@osg.samsung.com>2016-05-18 12:32:27 -0400
commit91d16899b1f448c3909a879698b3354d22bfec73 (patch)
tree99176b15f7fa0f270c3580af9818fd9b0d9368b8
parent366193f2d2afb200bc266da712ed385d5413ac99 (diff)
downloadenlightenment-91d16899b1f448c3909a879698b3354d22bfec73.tar.gz
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
-rw-r--r--src/bin/e_place.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/bin/e_place.c b/src/bin/e_place.c
index fe272e41ea..642a603657 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);
}
}