summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorHyoyoung Chang <hyoyoung@gmail.com>2012-04-18 10:43:51 +0000
committerCarsten Haitzler <raster@rasterman.com>2012-04-18 10:43:51 +0000
commitf5da7c7f28f68d2168cde50bf9d28cf435d3a882 (patch)
tree70bbb1828734db8017821825a4f53f3854409f21 /src/lib
parentfd53d320f21db1b34c1b4651750b618cee5449ec (diff)
From: Hyoyoung Chang <hyoyoung@gmail.com>
Subject: [E-devel] [patch] elm_genlist - bugfix at item flipped I made a small patch about item flipped. It resolves two bugs 1. flip_set and unset is called quickly, sometimes genlist can't free flipped data. it fixed to remove checking flipped status in item unrealize 2. add item unhighlight at flip_job SVN revision: 70306
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/elm_genlist.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/src/lib/elm_genlist.c b/src/lib/elm_genlist.c
index dd1842e94..05dadf170 100644
--- a/src/lib/elm_genlist.c
+++ b/src/lib/elm_genlist.c
@@ -5642,10 +5642,13 @@ elm_genlist_item_class_unref(Elm_Genlist_Item_Class *itc)
5642void _flip_job(void *data) 5642void _flip_job(void *data)
5643{ 5643{
5644 Elm_Gen_Item *it = (Elm_Gen_Item *) data; 5644 Elm_Gen_Item *it = (Elm_Gen_Item *) data;
5645 _item_unhighlight(it);
5646 _item_unselect(it);
5645 _elm_genlist_item_unrealize(it, EINA_FALSE); 5647 _elm_genlist_item_unrealize(it, EINA_FALSE);
5646 if (it->selected) _item_unselect(it);
5647 it->flipped = EINA_TRUE; 5648 it->flipped = EINA_TRUE;
5648 it->item->nocache = EINA_TRUE; 5649 it->item->nocache = EINA_TRUE;
5650 if (it->wd->calc_job) ecore_job_del(it->wd->calc_job);
5651 it->wd->calc_job = ecore_job_add(_calc_job, it->wd);
5649} 5652}
5650 5653
5651EAPI void 5654EAPI void
@@ -5661,8 +5664,6 @@ elm_genlist_item_flip_set(Elm_Object_Item *it,
5661 if (flip) 5664 if (flip)
5662 { 5665 {
5663 ecore_job_add(_flip_job, _it); 5666 ecore_job_add(_flip_job, _it);
5664 if (_it->wd->calc_job) ecore_job_del(_it->wd->calc_job);
5665 _it->wd->calc_job = ecore_job_add(_calc_job, _it->wd);
5666 } 5667 }
5667 else 5668 else
5668 { 5669 {
@@ -5876,13 +5877,10 @@ _elm_genlist_item_unrealize(Elm_Gen_Item *it,
5876 EINA_LIST_FREE(it->content_objs, content) 5877 EINA_LIST_FREE(it->content_objs, content)
5877 evas_object_del(content); 5878 evas_object_del(content);
5878 5879
5879 if (it->flipped) 5880 elm_widget_stringlist_free(it->item->flip_contents);
5880 { 5881 it->item->flip_contents = NULL;
5881 elm_widget_stringlist_free(it->item->flip_contents); 5882 EINA_LIST_FREE(it->item->flip_content_objs, content)
5882 it->item->flip_contents = NULL; 5883 evas_object_del(content);
5883 EINA_LIST_FREE(it->item->flip_content_objs, content)
5884 evas_object_del(content);
5885 }
5886 5884
5887 it->unrealize_cb(it); 5885 it->unrealize_cb(it);
5888 5886