vector container: don't copy composite target duplicatedly. 58/218158/1
authorHermet Park <hermetpark@gmail.com>
Wed, 20 Nov 2019 05:09:00 +0000 (14:09 +0900)
committerHermet Park <hermetpark@gmail.com>
Wed, 20 Nov 2019 05:12:16 +0000 (14:12 +0900)
Container copied composite target in prior to duplicate children,

the composite target is one of the children, it should skip to handle it again.

Change-Id: I9a3074ca858f7827ab7d8315ed4446370952a8f0

src/lib/evas/canvas/efl_canvas_vg_container.c

index 471ea3d..c6fe0c4 100644 (file)
@@ -390,7 +390,7 @@ _efl_canvas_vg_container_efl_object_parent_set(Eo *obj,
 
 EOLIAN static Efl_VG *
 _efl_canvas_vg_container_efl_duplicate_duplicate(const Eo *obj,
-                                             Efl_Canvas_Vg_Container_Data *pd)
+                                                 Efl_Canvas_Vg_Container_Data *pd)
 {
    Eina_List *l;
    Efl_VG *child;
@@ -410,6 +410,9 @@ _efl_canvas_vg_container_efl_duplicate_duplicate(const Eo *obj,
    //Copy Children
    EINA_LIST_FOREACH(pd->children, l, child)
      {
+        //Skip, We already copied composite target before.
+        if (child == pd->comp_target) continue;
+
         Efl_VG *eo = efl_duplicate(child);
         efl_parent_set(eo, container);
      }