Allow the 'linear' convert type to work with colors and integers, like the 'timed...
[synfig.git] / synfig-core / trunk / src / synfig / canvas.cpp
index 0b4563a..6404b84 100644 (file)
@@ -510,7 +510,7 @@ Canvas::surefind_canvas(const String &id)
                if(id[0]=='#')
                        return surefind_canvas(String(id,1));
 
-               //! \todo This needs alot more optimization
+               //! \todo This needs a lot more optimization
                String file_name(id,0,id.find_first_of('#'));
                String external_id(id,id.find_first_of('#')+1);
 
@@ -595,7 +595,7 @@ Canvas::find_canvas(const String &id)const
                if(id[0]=='#')
                        return find_canvas(String(id,1));
 
-               //! \todo This needs alot more optimization
+               //! \todo This needs a lot more optimization
                String file_name(id,0,id.find_first_of('#'));
                String external_id(id,id.find_first_of('#')+1);
 
@@ -1036,10 +1036,12 @@ synfig::optimize_layers(Context context, Canvas::Handle op_canvas)
                        continue;
 
                Layer_PasteCanvas* paste_canvas(static_cast<Layer_PasteCanvas*>(layer.get()));
-               if(layer->get_name()=="PasteCanvas" && paste_canvas->get_time_offset()==0)
+               if(layer->get_name()=="paste_canvas" && paste_canvas->get_time_offset()==0)
                {
                        Canvas::Handle sub_canvas(Canvas::create_inline(op_canvas));
-                       optimize_layers(paste_canvas->get_sub_canvas()->get_context(),sub_canvas);
+                       Canvas::Handle paste_sub_canvas = paste_canvas->get_sub_canvas();
+                       if(paste_sub_canvas)
+                               optimize_layers(paste_sub_canvas->get_context(),sub_canvas);
 //#define SYNFIG_OPTIMIZE_PASTE_CANVAS 1
 
 #ifdef SYNFIG_OPTIMIZE_PASTE_CANVAS
@@ -1074,13 +1076,13 @@ synfig::optimize_layers(Context context, Canvas::Handle op_canvas)
                                continue;
                        }catch(int) { }
 #endif
-                       Layer::Handle new_layer(Layer::create("PasteCanvas"));
-                       dynamic_cast<Layer_PasteCanvas*>(new_layer.get())->set_do_not_muck_with_time(true);
+                       Layer::Handle new_layer(Layer::create("paste_canvas"));
+                       dynamic_cast<Layer_PasteCanvas*>(new_layer.get())->set_muck_with_time(false);
                        Layer::ParamList param_list(paste_canvas->get_param_list());
                        //param_list.erase("canvas");
                        new_layer->set_param_list(param_list);
                        dynamic_cast<Layer_PasteCanvas*>(new_layer.get())->set_sub_canvas(sub_canvas);
-                       dynamic_cast<Layer_PasteCanvas*>(new_layer.get())->set_do_not_muck_with_time(false);
+                       dynamic_cast<Layer_PasteCanvas*>(new_layer.get())->set_muck_with_time(true);
                        layer=new_layer;
                }