diff options
Diffstat (limited to 'src/live_effects/lpe-clone-original.cpp')
| -rw-r--r-- | src/live_effects/lpe-clone-original.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/live_effects/lpe-clone-original.cpp b/src/live_effects/lpe-clone-original.cpp index f797812f5..f239c6acf 100644 --- a/src/live_effects/lpe-clone-original.cpp +++ b/src/live_effects/lpe-clone-original.cpp @@ -136,7 +136,9 @@ LPECloneOriginal::cloneAttrbutes(SPObject *origin, SPObject *dest, const gchar * if (strlen(attribute)) { if ( shape_dest && shape_origin && (std::strcmp(attribute, "d") == 0)) { SPCurve *c = nullptr; - if (method == CLM_BSPLINESPIRO || (previous_method == CLM_BSPLINESPIRO && method == CLM_CURRENT)) { + if (method == CLM_CURRENT && (previous_method == CLM_CURRENT || is_load)) { + c = shape_dest->getCurve(); + } else if (method == CLM_BSPLINESPIRO || (previous_method == CLM_BSPLINESPIRO && method == CLM_CURRENT)) { c = shape_origin->getCurveForEdit(); SPLPEItem * lpe_item = SP_LPE_ITEM(origin); if (lpe_item) { @@ -167,9 +169,7 @@ LPECloneOriginal::cloneAttrbutes(SPObject *origin, SPObject *dest, const gchar * if (method == CLM_CURRENT) { shape_dest->setCurveBeforeLPE(c); } - } else if (method == CLM_CURRENT && previous_method == CLM_CURRENT) { - c = shape_dest->getCurve(); - } else { + } else if(method == CLM_D || (previous_method == CLM_D && method == CLM_CURRENT)){ c = shape_origin->getCurve(); if (method == CLM_CURRENT) { shape_dest->setCurveBeforeLPE(c); |
