summaryrefslogtreecommitdiffstats
path: root/src/marker.cpp
diff options
context:
space:
mode:
authorTavmjong Bah <tavmjong@free.fr>2014-01-30 13:18:11 +0000
committertavmjong-free <tavmjong@free.fr>2014-01-30 13:18:11 +0000
commita4ce97ec6835fb6ea8dfd3dbee11abe103b064e4 (patch)
treee191825938581efc762f57e6915068e9c17b57fb /src/marker.cpp
parentPrevent crash if a symbols file does not have a title. (diff)
downloadinkscape-a4ce97ec6835fb6ea8dfd3dbee11abe103b064e4.tar.gz
inkscape-a4ce97ec6835fb6ea8dfd3dbee11abe103b064e4.zip
Correct positioning of custom markers. Fixes #230491.
(bzr r12986)
Diffstat (limited to 'src/marker.cpp')
-rw-r--r--src/marker.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/marker.cpp b/src/marker.cpp
index d145aadaf..b9464186d 100644
--- a/src/marker.cpp
+++ b/src/marker.cpp
@@ -654,7 +654,7 @@ sp_marker_view_remove (SPMarker *marker, SPMarkerView *view, unsigned int destro
delete view;
}
-const gchar *generate_marker(GSList *reprs, Geom::Rect bounds, SPDocument *document, Geom::Affine /*transform*/, Geom::Affine move)
+const gchar *generate_marker(GSList *reprs, Geom::Rect bounds, SPDocument *document, Geom::Point center, Geom::Affine move)
{
Inkscape::XML::Document *xml_doc = document->getReprDoc();
Inkscape::XML::Node *defsrepr = document->getDefs()->getRepr();
@@ -668,6 +668,8 @@ const gchar *generate_marker(GSList *reprs, Geom::Rect bounds, SPDocument *docum
sp_repr_set_svg_double(repr, "markerWidth", bounds.dimensions()[Geom::X]);
sp_repr_set_svg_double(repr, "markerHeight", bounds.dimensions()[Geom::Y]);
+ sp_repr_set_svg_double(repr, "refX", center[Geom::X]);
+ sp_repr_set_svg_double(repr, "refY", center[Geom::Y]);
repr->setAttribute("orient", "auto");
@@ -676,7 +678,7 @@ const gchar *generate_marker(GSList *reprs, Geom::Rect bounds, SPDocument *docum
SPObject *mark_object = document->getObjectById(mark_id);
for (GSList *i = reprs; i != NULL; i = i->next) {
- Inkscape::XML::Node *node = (Inkscape::XML::Node *)(i->data);
+ Inkscape::XML::Node *node = (Inkscape::XML::Node *)(i->data);
SPItem *copy = SP_ITEM(mark_object->appendChildRepr(node));
Geom::Affine dup_transform;