diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c index 038882dbf7..21a1086a1b 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 b6e0db909b..0ca1ca7c04 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 7fb79a86e3..2e386ed5ff 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);