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(cur_time_.is_equal(x))
return;
- cur_time_=x;
+ get_canvas()->set_time(cur_time_=x);
+
+ // update the time in all the child canvases
+ Canvas::Children children = get_canvas()->children();
+ for (Canvas::Children::iterator iter = children.begin(); iter != children.end(); iter++)
+ if (handle<CanvasInterface> interface = get_instance()->find_canvas_interface(*iter))
+ interface->set_time(interface->get_canvas()->get_time());
signal_time_changed()();
signal_dirty_preview()();