Run everything in the same thread.
[synfig.git] / synfig-studio / trunk / src / synfigapp / canvasinterface.cpp
index 4521c01..45c307f 100644 (file)
@@ -6,6 +6,7 @@
 **
 **     \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
@@ -103,7 +104,13 @@ CanvasInterface::set_time(synfig::Time x)
        }
        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()->get_root()->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()();
@@ -487,7 +494,7 @@ CanvasInterface::import(const synfig::String &filename, bool /*copy*/)
                if(!outside_canvas)
                        throw String(_("Unable to open this composition"));
 
-               Layer::Handle layer(add_layer_to("paste_canvas",get_canvas()));
+               Layer::Handle layer(add_layer_to("PasteCanvas",get_canvas()));
                if(!layer)
                        throw String(_("Unable to create \"Paste Canvas\" layer"));
                if(!layer->set_param("canvas",ValueBase(outside_canvas)))
@@ -508,8 +515,6 @@ CanvasInterface::import(const synfig::String &filename, bool /*copy*/)
                return false;
        }
 
-
-
        if(!Importer::book().count(ext))
        {
                get_ui_interface()->error(_("I don't know how to open images of this type -- ")+ext);