X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Fsrc%2Fsynfig%2Flayer_composite.cpp;h=24cae5246d6eea78191b156515dd262f63720919;hb=e6b894ac0b503008a3e42049aed30d116db28630;hp=5d03787d7979e1b9ebec2f3fe1660f21e7de2eb5;hpb=2aa82e84160499903d3e7f85a7770ffe3d04ddb2;p=synfig.git diff --git a/synfig-core/src/synfig/layer_composite.cpp b/synfig-core/src/synfig/layer_composite.cpp index 5d03787..24cae52 100644 --- a/synfig-core/src/synfig/layer_composite.cpp +++ b/synfig-core/src/synfig/layer_composite.cpp @@ -205,12 +205,52 @@ Layer_Composite::set_param(const String & param, const ValueBase &value) ValueBase Layer_Composite::get_param(const String & param)const { + //! First check if the parameter's string is known. if(param=="amount") - return get_amount(); + { + synfig::ValueBase ret(get_amount()); + ret.set_static(amount_static); + return ret; + } if(param=="blend_method") - return static_cast(get_blend_method()); + { + synfig::ValueBase ret(static_cast(get_blend_method())); + ret.set_static(blend_method_static); + return ret; + } //! If it is unknown then call the ancestor's get param member //! to see if it can handle that parameter's string. return Layer::get_param(param); } + +bool +Layer_Composite::set_param_static(const String ¶m, const bool x) +{ + if(param=="amount" && amount_static!=x) + { + amount_static=x; + return true; + } + if(param=="blend_method" && blend_method_static!=x) + { + blend_method_static=x; + return true; + } + + return Layer::set_param_static(param, x); +} + + +bool +Layer_Composite::get_param_static(const String ¶m) const +{ + + if(param=="amount") + return amount_static; + + if(param=="blend_method") + return blend_method_static; + + return Layer::get_param_static(param); +}