diff options
| author | Jabier Arraiza <jabier.arraiza@marker.es> | 2018-09-29 17:38:18 +0000 |
|---|---|---|
| committer | Jabier Arraiza <jabier.arraiza@marker.es> | 2018-09-29 17:38:18 +0000 |
| commit | b5b69ed38101efb51632b9c7ad4a25a5b13ca98c (patch) | |
| tree | d9abc106c62b06bdf5fd422317b08b3288475b0b /src/object/box3d-side.cpp | |
| parent | CI/AppVeyor: Escape from DLL hell (diff) | |
| download | inkscape-b5b69ed38101efb51632b9c7ad4a25a5b13ca98c.tar.gz inkscape-b5b69ed38101efb51632b9c7ad4a25a5b13ca98c.zip | |
Fix for bug: #1791784 LPE path effect undo does not work
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(); } |
