hermet pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=58368ea63699291c535c78c9fcc6269c478ca511

commit 58368ea63699291c535c78c9fcc6269c478ca511
Author: ChunEon Park <her...@hermet.pe.kr>
Date:   Fri Nov 22 14:02:40 2013 +0900

    edje - fix the side effect introduced by 
12aba0db5a0949488d37b69b8696ed424666dca8
    
    Now do recalc parts correctly when edje is moved.
---
 src/lib/edje/edje_calc.c    | 4 ++--
 src/lib/edje/edje_private.h | 1 +
 src/lib/edje/edje_smart.c   | 4 +++-
 3 files changed, 6 insertions(+), 3 deletions(-)

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);

-- 


Reply via email to