From 2adbe0567d548f6277d708e4d99761b003868fd0 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 26 Oct 2012 08:30:24 +0000 Subject: [PATCH] when removing items from ilist, autoresize the ilist if it's in a scroller to prevent item sizes from becoming larger ticket #1678 SVN revision: 78508 --- src/bin/e_ilist.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/bin/e_ilist.c b/src/bin/e_ilist.c index 049964fb5..655776f10 100644 --- a/src/bin/e_ilist.c +++ b/src/bin/e_ilist.c @@ -443,6 +443,8 @@ e_ilist_remove_num(Evas_Object *obj, int n) { E_Ilist_Item *si = NULL; Eina_List *item; + int w, h; + Eina_Bool resize = EINA_FALSE; API_ENTRY return; if (!sd->items) return; @@ -453,12 +455,24 @@ e_ilist_remove_num(Evas_Object *obj, int n) sd->items = eina_list_remove_list(sd->items, item); if (si->selected) sd->selected_items = eina_list_remove(sd->selected_items, si); + evas_object_geometry_get(sd->o_box, NULL, NULL, &w, &h); + if ((sd->w == w) && (sd->h == h)) + resize = e_box_item_size_get(si->o_base, &w, &h); + if (sd->selected == n) sd->selected = -1; if (si->o_icon) evas_object_del(si->o_icon); if (si->o_end) evas_object_del(si->o_end); if (si->label) eina_stringshare_del(si->label); evas_object_del(si->o_base); E_FREE(si); + + /* if ilist size is size of box (e_widget_ilist), + * autoresize here to prevent skewed perspective as in ticket #1678 + */ + if (!resize) return; + if (!sd->items) return; + si = eina_list_data_get(sd->items); + evas_object_resize(sd->o_smart, w, eina_list_count(sd->items) * h); } EAPI const char *