From af0a3ca0fa6b70fd4e11cd847ad8f0193063f7e2 Mon Sep 17 00:00:00 2001 From: Jabiertxof Date: Thu, 16 May 2019 12:28:42 +0200 Subject: Fix a bug on reloading LPE Clone effect --- src/live_effects/lpe-clone-original.cpp | 8 ++++---- src/live_effects/lpe-copy_rotate.cpp | 2 +- src/live_effects/lpe-powerclip.cpp | 1 + 3 files changed, 6 insertions(+), 5 deletions(-) (limited to 'src/live_effects') 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); diff --git a/src/live_effects/lpe-copy_rotate.cpp b/src/live_effects/lpe-copy_rotate.cpp index be0165776..e4411990c 100644 --- a/src/live_effects/lpe-copy_rotate.cpp +++ b/src/live_effects/lpe-copy_rotate.cpp @@ -110,8 +110,8 @@ LPECopyRotate::~LPECopyRotate() void LPECopyRotate::doAfterEffect (SPLPEItem const* lpeitem) { + is_load = false; if (split_items) { - is_load = false; SPDocument * document = SP_ACTIVE_DOCUMENT; if (!document) { return; diff --git a/src/live_effects/lpe-powerclip.cpp b/src/live_effects/lpe-powerclip.cpp index 432f2a40d..877c99524 100644 --- a/src/live_effects/lpe-powerclip.cpp +++ b/src/live_effects/lpe-powerclip.cpp @@ -128,6 +128,7 @@ LPEPowerClip::doBeforeEffect (SPLPEItem const* lpeitem){ void LPEPowerClip::doAfterEffect (SPLPEItem const* lpeitem){ + is_load = false; if (!hide_clip && flatten && isVisible()) { SP_ITEM(sp_lpe_item)->clip_ref->detach(); } -- cgit v1.2.3