summaryrefslogtreecommitdiffstats
path: root/src/2geom/path.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/2geom/path.cpp')
-rw-r--r--src/2geom/path.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/2geom/path.cpp b/src/2geom/path.cpp
index 88c7a99b9..05a69d616 100644
--- a/src/2geom/path.cpp
+++ b/src/2geom/path.cpp
@@ -89,8 +89,17 @@ Path &Path::operator*=(Matrix const &m) {
}
prev = (*it)->finalPoint();
}
- for ( int i = 0 ; i < 2 ; ++i ) {
- final_->setPoint(i, (*final_)[i] * m);
+ if (closed_) {
+ Geom::Point pt = front().initialPoint();
+ if (size_open() > 0) {
+ Curve *l = const_cast<Curve*>((get_curves().end() - 2)->get());
+ l->setFinal(pt);
+ }
+ final_->setInitial(pt);
+ final_->setFinal(pt);
+ } else {
+ final_->setInitial(back().finalPoint());
+ final_->setFinal(front().initialPoint());
}
if (get_curves().size() > 1) {
if ( front().initialPoint() != initialPoint() || back().finalPoint() != finalPoint() ) {