As Paste Canvas Layer doesn't use IMPORT macro it is needed to set the static option...
[synfig.git] / synfig-core / src / synfig / layer_pastecanvas.cpp
index 04153c5..1f3976a 100644 (file)
@@ -87,7 +87,13 @@ Layer_PasteCanvas::Layer_PasteCanvas():
        depth(0),
        zoom(0),
        time_offset(0),
-       extra_reference(false)
+       extra_reference(false),
+       origin_static(false),
+       focus_static(false),
+       canvas_static(false),
+       zoom_static(false),
+       offset_static(false),
+       children_lock_static(true)
 {
        children_lock=false;
        muck_with_time_=true;
@@ -178,9 +184,9 @@ Layer_PasteCanvas::set_param(const String & param, const ValueBase &value)
        if(param=="canvas" && value.same_type_as(Canvas::Handle()))
        {
                set_sub_canvas(value.get(Canvas::Handle()));
+               set_param_static(param, value.get_static());
                return true;
        }
-
        //! \todo this introduces bug 1844764 if enabled; it was introduced in r954.
        // http://synfig.org/images/3/3d/Moving-waypoints.sifz is an
        // example of an animation that has its waypoints displayed
@@ -382,7 +388,7 @@ Layer_PasteCanvas::accelerated_render(Context context,Surface *surface,int quali
        else if (!context.accelerated_render(surface,quality,renddesc,&stageone))
                return false;
 
-       if(muck_with_time_ && curr_time!=Time::begin() && canvas->get_time()!=curr_time+time_offset)
+       if(muck_with_time_ && curr_time!=Time::begin() /*&& canvas->get_time()!=curr_time+time_offset*/)
                canvas->set_time(curr_time+time_offset);
 
        Color::BlendMethod blend_method(get_blend_method());
@@ -565,3 +571,31 @@ void Layer_PasteCanvas::get_times_vfunc(Node::time_set &set) const
 
        Layer::get_times_vfunc(set);
 }
+
+
+bool
+Layer_PasteCanvas::set_param_static(const String &param, const bool x)
+{
+       SET_STATIC(origin, x)
+       SET_STATIC(focus, x)
+       SET_STATIC(canvas, x)
+       SET_STATIC(zoom, x)
+       SET_STATIC(offset, x)
+       SET_STATIC(children_lock, x)
+
+       return Layer_Composite::set_param_static(param, x);
+}
+
+
+bool
+Layer_PasteCanvas::get_param_static(const String &param) const
+{
+       GET_STATIC(origin)
+       GET_STATIC(focus)
+       GET_STATIC(canvas)
+       GET_STATIC(zoom)
+       GET_STATIC(offset)
+       GET_STATIC(children_lock)
+
+       return Layer_Composite::get_param_static(param);
+}