Code

Fix ef spam when adjusting pattern on text - patch from Adonis Papaderos
[inkscape.git] / src / marker.cpp
index 2efcde1b99e6b03b5c22192cfcfbc09c29939b73..e4c2e0c305633929ea8df52a65a2e748b3250ea7 100644 (file)
@@ -43,7 +43,7 @@ struct SPMarkerView {
 static void sp_marker_class_init (SPMarkerClass *klass);
 static void sp_marker_init (SPMarker *marker);
 
-static void sp_marker_build (SPObject *object, Document *document, Inkscape::XML::Node *repr);
+static void sp_marker_build (SPObject *object, SPDocument *document, Inkscape::XML::Node *repr);
 static void sp_marker_release (SPObject *object);
 static void sp_marker_set (SPObject *object, unsigned int key, const gchar *value);
 static void sp_marker_update (SPObject *object, SPCtx *ctx, guint flags);
@@ -133,7 +133,7 @@ sp_marker_init (SPMarker *marker)
  * \see sp_object_build()
  */
 static void
-sp_marker_build (SPObject *object, Document *document, Inkscape::XML::Node *repr)
+sp_marker_build (SPObject *object, SPDocument *document, Inkscape::XML::Node *repr)
 {
        SPGroup *group;
        SPMarker *marker;
@@ -440,22 +440,9 @@ sp_marker_update (SPObject *object, SPCtx *ctx, guint flags)
                }
        }
 
-    {
-        Geom::Matrix q;
-           /* Compose additional transformation from scale and position */
-        q[0] = width / vb.width();
-        q[1] = 0.0;
-        q[2] = 0.0;
-        q[3] = height / vb.height();
-        q[4] = -vb.min()[Geom::X] * q[0] + x;
-        q[5] = -vb.min()[Geom::Y] * q[3] + y;
-           /* Append viewbox transformation */
-           marker->c2p = q * marker->c2p;
-    }
-
-       /* Append reference translation */
-       /* fixme: lala (Lauris) */
-        marker->c2p = Geom::Translate(-marker->refX.computed, -marker->refY.computed) * marker->c2p;
+       // viewbox transformation and reference translation
+       marker->c2p = Geom::Translate(-marker->refX.computed, -marker->refY.computed) *
+               Geom::Scale(width / vb.width(), height / vb.height());
 
        rctx.i2doc = marker->c2p * rctx.i2doc;
 
@@ -723,7 +710,7 @@ sp_marker_view_remove (SPMarker *marker, SPMarkerView *view, unsigned int destro
 }
 
 const gchar *
-generate_marker (GSList *reprs, Geom::Rect bounds, Document *document, Geom::Matrix /*transform*/, Geom::Matrix move)
+generate_marker (GSList *reprs, Geom::Rect bounds, SPDocument *document, Geom::Matrix /*transform*/, Geom::Matrix move)
 {
     Inkscape::XML::Document *xml_doc = sp_document_repr_doc(document);
     Inkscape::XML::Node *defsrepr = SP_OBJECT_REPR (SP_DOCUMENT_DEFS (document));