[genlist] Fix genlist item class update to recreate edje 77/79277/5
authorSangHyeon Lee <sh10233.lee@samsung.com>
Sun, 10 Jul 2016 11:41:44 +0000 (20:41 +0900)
committerGerrit Code Review <gerrit@review.vlan103.tizen.org>
Mon, 11 Jul 2016 05:52:46 +0000 (22:52 -0700)
Change-Id: I002c9de99b3bcd9b75ce9535368ce086542c70a5

src/mobile_lib/elm_genlist.c

index 0ee9f50fc7de99122a1b23ab479fca70c79d3737..909f040c784d6a6a4fb219daab5c6321d3eb8989 100644 (file)
@@ -6804,15 +6804,26 @@ _elm_genlist_item_item_class_update(Eo *eo_it, Elm_Gen_Item *it,
                                    const Elm_Genlist_Item_Class *itc)
 {
    ELM_GENLIST_ITEM_CHECK_OR_RETURN(it);
-
    EINA_SAFETY_ON_NULL_RETURN(itc);
+   Elm_Genlist_Data *sd = GL_IT(it)->wsd;
    it->itc = itc;
 
    if (!GL_IT(it)->block) return;
 
-   if (VIEW(it))
-     _view_theme_update(it, VIEW(it), it->itc->item_style);
-   elm_genlist_item_update(eo_it);
+   // FIXME(160711): orignal edje object updated by _view_theme_update
+   // cannot recieve signal emit properly. This edje bug must be fixed.
+   _item_cache_all_free(sd);
+
+   sd->no_cache = EINA_TRUE;
+   _item_unrealize(it, EINA_FALSE);
+   sd->no_cache = EINA_FALSE;
+   _item_realize(it, EINA_FALSE);
+
+   GL_IT(it)->calc_done = EINA_FALSE;
+   GL_IT(it)->block->calc_done = EINA_FALSE;
+   sd->calc_done = EINA_FALSE;
+
+   _changed(sd->pan_obj);
 }
 
 EOLIAN static const Elm_Genlist_Item_Class *