Take the 'Focus Point' into account when transforming ducks for layers inside pasteca...
[synfig.git] / synfig-studio / trunk / src / gtkmm / canvasview.cpp
index 791f87f..0973da6 100644 (file)
@@ -2842,15 +2842,16 @@ CanvasView::rebuild_ducks_layer_(synfig::TransformStack& transform_stack, synfig
                        Vector origin(layer->get_param("origin").get(Vector()));
 
                        Canvas::Handle child_canvas(layer->get_param("canvas").get(Canvas::Handle()));
+                       Vector focus(child_canvas->rend_desc().get_focus());
 
                        if(!scale.is_equal_to(Vector(1,1)))
-                               transform_stack.push(new Transform_Scale(scale,origin));
-                       if(!scale.is_equal_to(Vector(0,0)))
+                               transform_stack.push(new Transform_Scale(scale,origin+focus));
+                       if(!origin.is_equal_to(Vector(0,0)))
                                transform_stack.push(new Transform_Translate(origin));
 
                        rebuild_ducks_layer_(transform_stack,child_canvas,selected_list);
 
-                       if(!scale.is_equal_to(Vector(0,0)))
+                       if(!origin.is_equal_to(Vector(0,0)))
                                transform_stack.pop();
                        if(!scale.is_equal_to(Vector(1,1)))
                                transform_stack.pop();