const Eina_List *l;
const char *key;
- *source = elm_widget_stringlist_get(edje_object_data_get(target, "texts"));
+ if (!(*source))
+ *source = elm_widget_stringlist_get(edje_object_data_get(target, "texts"));
EINA_LIST_FOREACH(*source, l, key)
{
if (parts && fnmatch(parts, key, FNM_PERIOD))
const char *key;
char buf[4096];
- *source = elm_widget_stringlist_get(edje_object_data_get(target, "states"));
+ if (!(*source))
+ *source = elm_widget_stringlist_get(edje_object_data_get(target, "states"));
EINA_LIST_FOREACH(*source, l, key)
{
if (parts && fnmatch(parts, key, FNM_PERIOD))
if (it->flipped)
{
edje_object_signal_emit(VIEW(it), "elm,state,flip,enabled", "elm");
- it->item->flip_contents =
- elm_widget_stringlist_get(edje_object_data_get(VIEW(it), "flips"));
+ if (!(it->item->flip_contents))
+ it->item->flip_contents =
+ elm_widget_stringlist_get(edje_object_data_get(VIEW(it), "flips"));
it->item->flip_content_objs =
_item_mode_content_realize(it, VIEW(it),
&it->item->flip_contents, NULL,
assert(eina_list_count(it->item->deco_it_content_objs) == 0);
_item_text_realize(it, it->item->deco_it_view, &it->item->deco_it_texts, NULL);
- it->item->deco_it_contents =
- elm_widget_stringlist_get(edje_object_data_get(it->item->deco_it_view, "contents"));
+ if (!it->item->deco_it_contents)
+ it->item->deco_it_contents =
+ elm_widget_stringlist_get(edje_object_data_get(it->item->deco_it_view, "contents"));
it->item->deco_it_content_objs =
_item_mode_content_realize(it, it->item->deco_it_view,
&it->item->deco_it_contents, NULL,
_item_text_realize(it, it->deco_all_view, &it->item->deco_all_texts, NULL);
if (it->flipped) edje_object_signal_emit(it->deco_all_view, "elm,state,flip,enabled", "elm");
- it->item->deco_all_contents =
- elm_widget_stringlist_get(edje_object_data_get(it->deco_all_view, "contents"));
+ if (!it->item->deco_all_contents)
+ it->item->deco_all_contents =
+ elm_widget_stringlist_get(edje_object_data_get(it->deco_all_view, "contents"));
it->item->deco_all_content_objs =
_item_mode_content_realize(it, it->deco_all_view,
&it->item->deco_all_contents, NULL,
if (_it->generation < _it->wd->generation) return;
_it->itc = itc;
_it->item->nocache_once = EINA_TRUE;
+
+ elm_widget_stringlist_free(_it->texts);
+ _it->texts = NULL;
+ elm_widget_stringlist_free(_it->contents);
+ _it->contents = NULL;
+ elm_widget_stringlist_free(_it->states);
+ _it->states = NULL;
+
+ if (_it->flipped)
+ {
+ elm_widget_stringlist_free(_it->item->flip_contents);
+ _it->item->flip_contents = NULL;
+ }
+ if (_it->item->deco_it_view)
+ {
+ elm_widget_stringlist_free(_it->item->deco_it_texts);
+ _it->item->deco_it_texts = NULL;
+ elm_widget_stringlist_free(_it->item->deco_it_contents);
+ _it->item->deco_it_contents = NULL;
+ }
+ if (_it->wd->decorate_all_mode)
+ {
+ elm_widget_stringlist_free(_it->item->deco_all_texts);
+ _it->item->deco_all_texts = NULL;
+ elm_widget_stringlist_free(_it->item->deco_all_contents);
+ _it->item->deco_all_contents = NULL;
+ }
+
elm_genlist_item_update(it);
}