X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fsp-spiral.cpp;h=23233d04e1f8921e0a9d6750b1006a0c5504a62a;hb=7b51296159813ffbc382e4decef735f222ee23f8;hp=9a3708d4b3a55e888fab51479636075ad19b40aa;hpb=e9b6af083e34e2397a8ddbe9781920733d09d151;p=inkscape.git diff --git a/src/sp-spiral.cpp b/src/sp-spiral.cpp index 9a3708d4b..23233d04e 100644 --- a/src/sp-spiral.cpp +++ b/src/sp-spiral.cpp @@ -455,8 +455,17 @@ sp_spiral_set_shape (SPShape *shape) sp_spiral_fit_and_draw (spiral, c, (1.0 - t)/(SAMPLE_SIZE - 1.0), darray, hat1, hat2, &t); - sp_lpe_item_perform_path_effect(SP_LPE_ITEM (spiral), c); - sp_shape_set_curve_insync ((SPShape *) spiral, c, TRUE); + /* Reset the shape'scurve to the "original_curve" + * This is very important for LPEs to work properly! (the bbox might be recalculated depending on the curve in shape)*/ + sp_shape_set_curve_insync (shape, c, TRUE); + if (sp_lpe_item_has_path_effect(SP_LPE_ITEM(shape)) && sp_lpe_item_path_effects_enabled(SP_LPE_ITEM(shape))) { + SPCurve *c_lpe = c->copy(); + bool success = sp_lpe_item_perform_path_effect(SP_LPE_ITEM (shape), c_lpe); + if (success) { + sp_shape_set_curve_insync (shape, c_lpe, TRUE); + } + c_lpe->unref(); + } c->unref(); }