From: ChunEon Park Date: Fri, 22 Nov 2013 05:02:40 +0000 (+0900) Subject: edje - fix the side effect introduced by 12aba0db5a0949488d37b69b8696ed424666dca8 X-Git-Tag: v1.8.0-beta1~11 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=58368ea63699291c535c78c9fcc6269c478ca511;p=platform%2Fupstream%2Fefl.git edje - fix the side effect introduced by 12aba0db5a0949488d37b69b8696ed424666dca8 Now do recalc parts correctly when edje is moved. --- diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c index 038882d..21a1086 100644 --- a/src/lib/edje/edje_calc.c +++ b/src/lib/edje/edje_calc.c @@ -3352,7 +3352,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta (statep1 >= ep->param1.state) || proxy_invalidate || state || - (ed->have_mapped_part && chosen_desc->map.on) || + ed->need_map_update || ((ep->part->type == EDJE_PART_TYPE_TEXT || ep->part->type == EDJE_PART_TYPE_TEXTBLOCK) && ed->text_part_change)) @@ -3421,7 +3421,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta (statep2 >= ep->param2->state) || proxy_invalidate || state || - (ed->have_mapped_part && chosen_desc->map.on) || + ed->need_map_update || ((ep->part->type == EDJE_PART_TYPE_TEXT || ep->part->type == EDJE_PART_TYPE_TEXTBLOCK) && ed->text_part_change)) diff --git a/src/lib/edje/edje_private.h b/src/lib/edje/edje_private.h index b6e0db9..0ca1ca7 100644 --- a/src/lib/edje/edje_private.h +++ b/src/lib/edje/edje_private.h @@ -1370,6 +1370,7 @@ struct _Edje Eina_Bool recalc_call : 1; Eina_Bool update_hints : 1; Eina_Bool recalc_hints : 1; + Eina_Bool need_map_update : 1; }; struct _Edje_Calc_Params_Map diff --git a/src/lib/edje/edje_smart.c b/src/lib/edje/edje_smart.c index 7fb79a8..2e386ed 100644 --- a/src/lib/edje/edje_smart.c +++ b/src/lib/edje/edje_smart.c @@ -200,8 +200,10 @@ _edje_smart_move(Eo *obj EINA_UNUSED, void *_pd, va_list *list) if (ed->have_mapped_part) { ed->dirty = EINA_TRUE; - _edje_recalc_do(ed); ed->have_mapped_part = EINA_FALSE; + ed->need_map_update = EINA_TRUE; + _edje_recalc_do(ed); + ed->need_map_update = EINA_FALSE; } // _edje_emit(ed, "move", NULL);