edje - fix the side effect introduced by 12aba0db5a0949488d37b69b8696ed424666dca8
authorChunEon Park <hermet@hermet.pe.kr>
Fri, 22 Nov 2013 05:02:40 +0000 (14:02 +0900)
committerChunEon Park <hermet@hermet.pe.kr>
Fri, 22 Nov 2013 05:06:47 +0000 (14:06 +0900)
Now do recalc parts correctly when edje is moved.

src/lib/edje/edje_calc.c
src/lib/edje/edje_private.h
src/lib/edje/edje_smart.c

index 038882d..21a1086 100644 (file)
@@ -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))
index b6e0db9..0ca1ca7 100644 (file)
@@ -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
index 7fb79a8..2e386ed 100644 (file)
@@ -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);