summaryrefslogtreecommitdiffstats
path: root/src/sp-item.cpp
diff options
context:
space:
mode:
authorJabier Arraiza <jabier.arraiza@marker.es>2017-06-24 17:45:12 +0000
committerJabier Arraiza <jabier.arraiza@marker.es>2017-06-24 17:45:12 +0000
commite1b08bb2e05c407f3e524e5d9f7b63ae88e15f6c (patch)
tree650aaeb95a2468fdbdc3401530e8a825c7c4a3d1 /src/sp-item.cpp
parentUpdating to master (diff)
downloadinkscape-e1b08bb2e05c407f3e524e5d9f7b63ae88e15f6c.tar.gz
inkscape-e1b08bb2e05c407f3e524e5d9f7b63ae88e15f6c.zip
Working with powerclip and powermask
Diffstat (limited to 'src/sp-item.cpp')
-rw-r--r--src/sp-item.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/sp-item.cpp b/src/sp-item.cpp
index 368f8896c..4f3c7d283 100644
--- a/src/sp-item.cpp
+++ b/src/sp-item.cpp
@@ -1373,7 +1373,7 @@ void SPItem::adjust_paint_recursive (Geom::Affine advertized_transform, Geom::Af
// Within text, we do not fork gradients, and so must not recurse to avoid double compensation;
// also we do not recurse into clones, because a clone's child is the ghost of its original -
// we must not touch it
- if (!(this && (dynamic_cast<SPText *>(this) || dynamic_cast<SPUse *>(this)))) {
+ if (!(dynamic_cast<SPText *>(this) || dynamic_cast<SPUse *>(this))) {
for (auto& o: children) {
SPItem *item = dynamic_cast<SPItem *>(&o);
if (item) {
@@ -1401,7 +1401,6 @@ void SPItem::adjust_livepatheffect (Geom::Affine const &postmul, bool set)
SPLPEItem *lpeitem = dynamic_cast<SPLPEItem *>(this);
if ( lpeitem && lpeitem->hasPathEffect() ) {
lpeitem->forkPathEffectsIfNecessary();
-
// now that all LPEs are forked_if_necessary, we can apply the transform
PathEffectList effect_list = lpeitem->getEffectList();
for (PathEffectList::iterator it = effect_list.begin(); it != effect_list.end(); ++it)
@@ -1496,6 +1495,10 @@ void SPItem::doWriteTransform(Inkscape::XML::Node *repr, Geom::Affine const &tra
freeze_stroke_width_recursive(false);
}
} else {
+ SPLPEItem * lpeitem = SP_LPE_ITEM(this);
+ if (lpeitem && lpeitem->hasPathEffectRecursive()) {
+ lpeitem->adjust_livepatheffect(transform_attr);
+ }
if (freeze_stroke_width) {
freeze_stroke_width_recursive(false);
if (compensate) {