summaryrefslogtreecommitdiffstats
path: root/src/object/sp-spiral.cpp
diff options
context:
space:
mode:
authorJabier Arraiza <jabier.arraiza@marker.es>2018-04-23 21:34:58 +0000
committerJabier Arraiza <jabier.arraiza@marker.es>2018-04-23 21:37:56 +0000
commite254e5c6ced93403c125592237b43215bde7b0ff (patch)
tree765903f16cd02454f1c63f421e0ce2f299dacc55 /src/object/sp-spiral.cpp
parentFix warings on updates (diff)
downloadinkscape-e254e5c6ced93403c125592237b43215bde7b0ff.tar.gz
inkscape-e254e5c6ced93403c125592237b43215bde7b0ff.zip
Fixing LPE recalculations warnings on update
Diffstat (limited to 'src/object/sp-spiral.cpp')
-rw-r--r--src/object/sp-spiral.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/object/sp-spiral.cpp b/src/object/sp-spiral.cpp
index 40abff7d7..e17ddb10d 100644
--- a/src/object/sp-spiral.cpp
+++ b/src/object/sp-spiral.cpp
@@ -349,7 +349,12 @@ void SPSpiral::set_shape() {
* This is very important for LPEs to work properly! (the bbox might be recalculated depending on the curve in shape)*/
SPCurve * before = this->getCurveBeforeLPE();
if (before || this->hasPathEffectRecursive()) {
- this->setCurveBeforeLPE(c);
+ if (c && before && before->get_pathvector() != c->get_pathvector()){
+ this->setCurveBeforeLPE(c);
+ sp_lpe_item_update_patheffect(this, true, false);
+ } else {
+ this->setCurveBeforeLPE(c);
+ }
} else {
this->setCurveInsync(c);
}
@@ -400,6 +405,17 @@ void SPSpiral::snappoints(std::vector<Inkscape::SnapCandidatePoint> &p, Inkscape
*/
Geom::Affine SPSpiral::set_transform(Geom::Affine const &xform)
{
+ if (hasPathEffect() && pathEffectsEnabled() &&
+ (this->hasPathEffectOfType(Inkscape::LivePathEffect::CLONE_ORIGINAL) ||
+ this->hasPathEffectOfType(Inkscape::LivePathEffect::BEND_PATH) ||
+ this->hasPathEffectOfType(Inkscape::LivePathEffect::FILL_BETWEEN_MANY) ||
+ this->hasPathEffectOfType(Inkscape::LivePathEffect::FILL_BETWEEN_STROKES) ) )
+ {
+ // if path has this LPE applied, don't write the transform to the pathdata, but write it 'unoptimized'
+ // also if the effect is type BEND PATH to fix bug #179842
+ this->adjust_livepatheffect(xform);
+ return xform;
+ }
// Only set transform with proportional scaling
if (!xform.withoutTranslation().isUniformScale()) {
// Adjust livepatheffect