summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHermet Park <hermetpark@gmail.com>2019-11-27 21:04:43 +0900
committerHermet Park <hermetpark@gmail.com>2019-11-27 21:06:42 +0900
commit643dceca3d479e9edd66e52d9a7d7509ff5d4d87 (patch)
treebfff30c94ddf48188fb41b479e02aed3ac6a29c9
parent62225a695d46b759bbd52baec8b9420a052e79a1 (diff)
downloadefl-643dceca3d479e9edd66e52d9a7d7509ff5d4d87.tar.gz
vector container: skip copying compositions precisely.
+ added some comments for future tasks.
-rw-r--r--src/lib/evas/canvas/efl_canvas_vg_container.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/lib/evas/canvas/efl_canvas_vg_container.c b/src/lib/evas/canvas/efl_canvas_vg_container.c
index 6168edf618..d48acf3997 100644
--- a/src/lib/evas/canvas/efl_canvas_vg_container.c
+++ b/src/lib/evas/canvas/efl_canvas_vg_container.c
@@ -408,7 +408,11 @@ _efl_canvas_vg_container_efl_duplicate_duplicate(const Eo *obj,
//Copy Composite
if (pd->comp_target)
{
+ /* OPTIMIZE: How to skip copying the target
+ if this target is linked to multiple sources?? */
Eo * comp_target = efl_duplicate(pd->comp_target);
+
+ //FIXME: comp_target parent should be its own parent(duplicated obj this case)
efl_parent_set(comp_target, container);
efl_canvas_vg_node_comp_method_set(container, comp_target, pd->comp.method);
}
@@ -417,7 +421,9 @@ _efl_canvas_vg_container_efl_duplicate_duplicate(const Eo *obj,
EINA_LIST_FOREACH(pd->children, l, child)
{
//Skip, We already copied composite target before.
- if (child == pd->comp_target) continue;
+ Efl_Canvas_Vg_Container_Data *pd2 =
+ efl_data_scope_get(child, MY_CLASS);
+ if (pd2->comp.src) continue;
Efl_VG *eo = efl_duplicate(child);
efl_parent_set(eo, container);