forked from enlightenment/enlightenment
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
This commit is contained in:
parent
ef7cd7af5f
commit
2adbe0567d
|
@ -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 *
|
||||
|
|
Loading…
Reference in New Issue