struct _Widget_Data
{
+ Eina_Inlist_Sorted_State *state;
Evas_Object *self, *scr;
Evas_Object *pan_smart;
Pan *pan;
item = _item_create(wd, gic, data, func, func_data);
if (!item) return NULL;
+ if (!wd->state)
+ wd->state = eina_inlist_sorted_state_new();
+
_elm_gengrid_item_compare_cb = comp;
- wd->items = eina_inlist_sorted_insert(wd->items, EINA_INLIST_GET(item),
- _elm_gengrid_item_compare);
+ wd->items = eina_inlist_sorted_state_insert(wd->items, EINA_INLIST_GET(item),
+ _elm_gengrid_item_compare, wd->state);
if (wd->calc_job) ecore_job_del(wd->calc_job);
wd->calc_job = ecore_job_add(_calc_job, wd);
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return;
+ if (wd->state)
+ {
+ eina_inlist_sorted_state_free(wd->state);
+ wd->state = NULL;
+ }
if (wd->calc_job)
{
ecore_job_del(wd->calc_job);
struct _Widget_Data
{
+ Eina_Inlist_Sorted_State *state;
Evas_Object *obj, *scr, *pan_smart;
Eina_Inlist *items, *blocks;
Eina_List *group_items;
}
else
{
+ if (!wd->state)
+ {
+ wd->state = eina_inlist_sorted_state_new();
+ }
+
if (flags & ELM_GENLIST_ITEM_GROUP)
wd->group_items = eina_list_append(wd->group_items, it);
- wd->items = eina_inlist_sorted_insert(wd->items, EINA_INLIST_GET(it),
- _elm_genlist_item_compare);
+ wd->items = eina_inlist_sorted_state_insert(wd->items, EINA_INLIST_GET(it),
+ _elm_genlist_item_compare, wd->state);
if (EINA_INLIST_GET(it)->next)
{
ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return;
+ if (wd->state)
+ {
+ eina_inlist_sorted_state_free(wd->state);
+ wd->state = NULL;
+ }
if (wd->walking > 0)
{
Elm_Genlist_Item *it;