summaryrefslogtreecommitdiffstats
path: root/src/sp-item-group.cpp
diff options
context:
space:
mode:
authorMatthew Petroff <matthew@mpetroff.net>2013-09-15 19:23:28 +0000
committerMatthew Petroff <matthew@mpetroff.net>2013-09-15 19:23:28 +0000
commitd3b5c51c6781c24933d941f26abe5a4b5cd9ccdb (patch)
tree7538c1aa560c305cd0077bb6a96f68f1d6f783c9 /src/sp-item-group.cpp
parentFix document unit change for transformed flow text and transformed text on path. (diff)
downloadinkscape-d3b5c51c6781c24933d941f26abe5a4b5cd9ccdb.tar.gz
inkscape-d3b5c51c6781c24933d941f26abe5a4b5cd9ccdb.zip
Fix document unit change for disconnected connectors.
(bzr r12475.1.19)
Diffstat (limited to 'src/sp-item-group.cpp')
-rw-r--r--src/sp-item-group.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/sp-item-group.cpp b/src/sp-item-group.cpp
index 1b8af43e1..e355c6cea 100644
--- a/src/sp-item-group.cpp
+++ b/src/sp-item-group.cpp
@@ -585,6 +585,7 @@ void SPGroup::scaleChildItemsRec(Geom::Scale const &sc, Geom::Point const &p)
old_center = item->getCenter();
}
+ gchar const *conn_type = NULL;
if (SP_IS_TEXT_TEXTPATH(item)) {
SP_TEXT(item)->optimizeTextpathText();
} else if (SP_IS_FLOWTEXT(item)) {
@@ -592,6 +593,12 @@ void SPGroup::scaleChildItemsRec(Geom::Scale const &sc, Geom::Point const &p)
} else if (SP_IS_BOX3D(item)) {
// Force recalculation from perspective
box3d_position_set(SP_BOX3D(item));
+ } else if (item->getAttribute("inkscape:connector-type") != NULL
+ && (item->getAttribute("inkscape:connection-start") == NULL
+ || item->getAttribute("inkscape:connection-end") == NULL)) {
+ // Remove and store connector type for transform if disconnected
+ conn_type = item->getAttribute("inkscape:connector-type");
+ item->removeAttribute("inkscape:connector-type");
}
if ((SP_IS_TEXT_TEXTPATH(item) || SP_IS_FLOWTEXT(item)) && !item->transform.isIdentity()) {
@@ -615,6 +622,10 @@ void SPGroup::scaleChildItemsRec(Geom::Scale const &sc, Geom::Point const &p)
item->doWriteTransform(item->getRepr(), item->transform, NULL, true);
}
+ if (conn_type != NULL) {
+ item->setAttribute("inkscape:connector-type", conn_type);
+ }
+
if (item->isCenterSet() && !(final.isTranslation() || final.isIdentity())) {
item->setCenter(old_center * final);
item->updateRepr();