From: Seunggyun Kim Date: Thu, 10 Mar 2011 14:46:39 +0000 (+0900) Subject: [elm_genlist.c] fix item flickering and cache highlight problem X-Git-Tag: REL_I9200_20110603-1~283^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=749cde3e9fe1da6060bdde3c33dd92b3329f063d;p=framework%2Fuifw%2Felementary.git [elm_genlist.c] fix item flickering and cache highlight problem --- diff --git a/src/lib/elm_genlist.c b/src/lib/elm_genlist.c index 4fc29ae..38993af 100644 --- a/src/lib/elm_genlist.c +++ b/src/lib/elm_genlist.c @@ -354,6 +354,7 @@ struct _Widget_Data Eina_Bool effect_mode : 1; Eina_Bool select_all_check : 1; Eina_Bool auto_scrolled : 1; + Eina_Bool contracting : 1; int edit_mode; Edit_Data *ed; Eina_List *edit_field; @@ -2189,7 +2190,7 @@ _item_block_recalc(Item_Block *itb, else { _item_realize(it, in, 1); - _item_unrealize(it); + if (!it->wd->contracting) _item_unrealize(it); } } else @@ -2246,7 +2247,7 @@ _item_block_unrealize(Item_Block *itb) it->want_unrealize = EINA_TRUE; } else - _item_unrealize(it); + if (!it->wd->contracting) _item_unrealize(it); } } if (!dragging) @@ -2980,6 +2981,7 @@ _pan_calculate(Evas_Object *obj) } else _item_auto_scroll(sd->wd); if (sd->wd->select_all_item) evas_object_raise(sd->wd->select_all_item->base.view); + sd->wd->contracting = EINA_FALSE; } static void @@ -4208,6 +4210,7 @@ elm_genlist_item_expanded_set(Elm_Genlist_Item *it, } else { + it->wd->contracting = EINA_TRUE; it->wd->move_effect_mode = ELM_GENLIST_ITEM_MOVE_EFFECT_CONTRACT; if (it->realized) edje_object_signal_emit(it->base.view, "elm,state,contracted", "elm");