summaryrefslogtreecommitdiffstats
path: root/src/sp-flowregion.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/sp-flowregion.cpp')
-rw-r--r--src/sp-flowregion.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/sp-flowregion.cpp b/src/sp-flowregion.cpp
index 709e9e464..32d3b0f60 100644
--- a/src/sp-flowregion.cpp
+++ b/src/sp-flowregion.cpp
@@ -42,15 +42,12 @@ static void GetDest(SPObject* child,Shape **computed);
SPFlowregion::SPFlowregion() : SPItem() {
- //new (&this->computed) std::vector<Shape*>;
}
SPFlowregion::~SPFlowregion() {
for (std::vector<Shape*>::iterator it = this->computed.begin() ; it != this->computed.end() ; ++it) {
delete *it;
}
-
- //this->computed.~vector<Shape*>();
}
void SPFlowregion::child_added(Inkscape::XML::Node *child, Inkscape::XML::Node *ref) {
@@ -185,6 +182,8 @@ Inkscape::XML::Node *SPFlowregion::write(Inkscape::XML::Document *xml_doc, Inksc
SPItem::write(xml_doc, repr, flags);
+ this->UpdateComputed(); // copied from update(), see LP Bug 1339305
+
return repr;
}
@@ -372,6 +371,8 @@ static void GetDest(SPObject* child,Shape **computed)
tr_mat = SP_ITEM(u_child)->transform;
}
if ( SP_IS_SHAPE (u_child) ) {
+ if (!(SP_SHAPE(u_child)->_curve))
+ SP_SHAPE (u_child)->set_shape ();
curve = SP_SHAPE (u_child)->getCurve ();
} else if ( SP_IS_TEXT (u_child) ) {
curve = SP_TEXT (u_child)->getNormalizedBpath ();