Run everything in the same thread.
[synfig.git] / synfig-studio / trunk / src / synfigapp / canvasinterface.cpp
index 0aa2e35..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()();
@@ -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);