**
** \legal
** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
+** Copyright (c) 2007 Chris Moore
**
** This package is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public License as
/* === G L O B A L S ======================================================= */
SYNFIG_LAYER_INIT(Layer_PasteCanvas);
-SYNFIG_LAYER_SET_NAME(Layer_PasteCanvas,"PasteCanvas");
+SYNFIG_LAYER_SET_NAME(Layer_PasteCanvas,"PasteCanvas"); // todo: use paste_canvas
SYNFIG_LAYER_SET_LOCAL_NAME(Layer_PasteCanvas,_("Paste Canvas"));
-SYNFIG_LAYER_SET_CATEGORY(Layer_PasteCanvas,_("Default"));
+SYNFIG_LAYER_SET_CATEGORY(Layer_PasteCanvas,_("Other"));
SYNFIG_LAYER_SET_VERSION(Layer_PasteCanvas,"0.1");
SYNFIG_LAYER_SET_CVS_ID(Layer_PasteCanvas,"$Id$");
time_offset(0)
{
children_lock=false;
- do_not_muck_with_time_=false;
+ muck_with_time_=true;
curr_time=Time::begin();
}
{
IMPORT(origin);
- if(param=="canvas" && value.same_as(Canvas::Handle()))
+ if(param=="canvas" && value.same_type_as(Canvas::Handle()))
{
set_sub_canvas(value.get(Canvas::Handle()));
return true;
void
Layer_PasteCanvas::set_sub_canvas(etl::handle<synfig::Canvas> x)
{
- if(canvas && !do_not_muck_with_time_)
+ if(canvas && muck_with_time_)
remove_child(canvas.get());
if(canvas && (canvas->is_inline() || !get_canvas() || get_canvas()->get_root()!=canvas->get_root()))
if(canvas)
bounds=(canvas->get_context().get_full_bounding_rect()-canvas->rend_desc().get_focus())*exp(zoom)+origin+canvas->rend_desc().get_focus();
- if(canvas && !do_not_muck_with_time_)
+ if(canvas && muck_with_time_)
add_child(canvas.get());
if(canvas && (canvas->is_inline() || !get_canvas() || get_canvas()->get_root()!=canvas->get_root()))
context.set_time(time);
if(canvas)
{
- canvas->set_time(time);
+ canvas->set_time(time+time_offset);
bounds=(canvas->get_context().get_full_bounding_rect()-canvas->rend_desc().get_focus())*exp(zoom)+origin+canvas->rend_desc().get_focus();
}
if(!canvas || !get_amount())
return context.accelerated_render(surface,quality,renddesc,cb);
- if(!do_not_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);
}