diff options
Diffstat (limited to 'src/object/box3d-side.cpp')
| -rw-r--r-- | src/object/box3d-side.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/object/box3d-side.cpp b/src/object/box3d-side.cpp index d3ea2c890..f90b3e9ff 100644 --- a/src/object/box3d-side.cpp +++ b/src/object/box3d-side.cpp @@ -194,16 +194,21 @@ void Box3DSide::set_shape() { /* 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)*/ SPCurve * before = this->getCurveBeforeLPE(); - if (before || this->hasPathEffectRecursive()) { + bool haslpe = this->hasPathEffectOnClipOrMaskRecursive(this); + if (before || haslpe) { if (c && before && before->get_pathvector() != c->get_pathvector()){ this->setCurveBeforeLPE(c); sp_lpe_item_update_patheffect(this, true, false); - } else { + } else if(haslpe) { this->setCurveBeforeLPE(c); + } else { + //This happends on undo, fix bug:#1791784 + this->setCurveInsync(c); } } else { this->setCurveInsync(c); } + if (before) { before->unref(); } |
