summaryrefslogtreecommitdiffstats
path: root/src/object/box3d-side.cpp
diff options
context:
space:
mode:
authorJabier Arraiza <jabier.arraiza@marker.es>2018-03-03 00:12:41 +0000
committerJabier Arraiza <jabier.arraiza@marker.es>2018-03-26 17:48:34 +0000
commit95b1c7b549605d7c6ce6623cc4cd121ed7c51a64 (patch)
tree1c38b4fe6baabbf45c55e0929516dd825f7d6847 /src/object/box3d-side.cpp
parentAllow building with USE_PANGO_WIN32. (diff)
downloadinkscape-95b1c7b549605d7c6ce6623cc4cd121ed7c51a64.tar.gz
inkscape-95b1c7b549605d7c6ce6623cc4cd121ed7c51a64.zip
Base LPE refactor
Diffstat (limited to 'src/object/box3d-side.cpp')
-rw-r--r--src/object/box3d-side.cpp25
1 files changed, 13 insertions, 12 deletions
diff --git a/src/object/box3d-side.cpp b/src/object/box3d-side.cpp
index 3eea8855c..6ecd3a1fa 100644
--- a/src/object/box3d-side.cpp
+++ b/src/object/box3d-side.cpp
@@ -192,21 +192,22 @@ void Box3DSide::set_shape() {
c->lineto(box3d_get_corner_screen(box, corners[3]));
c->closepath();
- /* Reset the this'scurve to the "original_curve"
+ /* Reset the shape's curve to the "original_curve"
* This is very important for LPEs to work properly! (the bbox might be recalculated depending on the curve in shape)*/
- this->setCurveInsync( c, TRUE);
-
- if (hasPathEffect() && pathEffectsEnabled()) {
- SPCurve *c_lpe = c->copy();
- bool success = this->performPathEffect(c_lpe);
-
- if (success) {
- this->setCurveInsync(c_lpe, TRUE);
+ SPCurve * before = this->getCurveBeforeLPE();
+ if (before || this->hasPathEffectRecursive()) {
+ if (!before || before->get_pathvector() != c->get_pathvector()){
+ this->setCurveBeforeLPE(c);
+ this->update_patheffect(false);
+ } else {
+ this->setCurveBeforeLPE(c);
}
-
- c_lpe->unref();
+ } else {
+ this->setCurveInsync(c);
+ }
+ if (before) {
+ before->unref();
}
-
c->unref();
}