From 0ea095f6e0adc36c8b7986860c57e55ec6ec8f86 Mon Sep 17 00:00:00 2001 From: Ivan Mahonin Date: Oct 14 2019 12:21:38 +0000 Subject: fix copy/paste bug (fixes #640) --- diff --git a/synfig-core/src/modules/lyr_freetype/lyr_freetype.cpp b/synfig-core/src/modules/lyr_freetype/lyr_freetype.cpp index 125f59c..1893f0b 100644 --- a/synfig-core/src/modules/lyr_freetype/lyr_freetype.cpp +++ b/synfig-core/src/modules/lyr_freetype/lyr_freetype.cpp @@ -141,6 +141,7 @@ Layer_Freetype::~Layer_Freetype() void Layer_Freetype::on_canvas_set() { + Layer_Composite::on_canvas_set(); synfig::String family=param_family.get(synfig::String()); int style=param_style.get(int()); int weight=param_weight.get(int()); diff --git a/synfig-core/src/modules/lyr_std/import.cpp b/synfig-core/src/modules/lyr_std/import.cpp index 1321e26..3c137a3 100644 --- a/synfig-core/src/modules/lyr_std/import.cpp +++ b/synfig-core/src/modules/lyr_std/import.cpp @@ -90,6 +90,7 @@ Import::~Import() void Import::on_canvas_set() { + Layer_Bitmap::on_canvas_set(); if(get_canvas())set_param("filename",param_filename); } diff --git a/synfig-core/src/synfig/layer.cpp b/synfig-core/src/synfig/layer.cpp index bd36d49..3ce1fc3 100644 --- a/synfig-core/src/synfig/layer.cpp +++ b/synfig-core/src/synfig/layer.cpp @@ -229,7 +229,13 @@ synfig::Layer::set_canvas(etl::loose_handle x) void synfig::Layer::on_canvas_set() - { } +{ + // update canvas for all non-exported child ValueNodes + if (get_canvas()) + for(DynamicParamList::const_iterator i = dynamic_param_list().begin(); i != dynamic_param_list().end(); ++i) + if (!i->second->is_exported()) + i->second->set_parent_canvas(get_canvas()); +} void synfig::Layer::on_static_param_changed(const String & /* param */) diff --git a/synfig-core/src/synfig/layers/layer_pastecanvas.cpp b/synfig-core/src/synfig/layers/layer_pastecanvas.cpp index c9def27..0d713c1 100644 --- a/synfig-core/src/synfig/layers/layer_pastecanvas.cpp +++ b/synfig-core/src/synfig/layers/layer_pastecanvas.cpp @@ -283,9 +283,8 @@ void Layer_PasteCanvas::on_canvas_set() { if(get_canvas() && sub_canvas && sub_canvas->is_inline() && sub_canvas->parent()!=get_canvas()) - { sub_canvas->set_inline(get_canvas()); - } + Layer_Composite::on_canvas_set(); } ValueBase