diff options
| author | Jabiertxof <jabier.arraiza@marker.es> | 2018-09-13 16:04:04 +0000 |
|---|---|---|
| committer | Jabiertxof <jabier.arraiza@marker.es> | 2018-09-13 16:04:04 +0000 |
| commit | 8b8e0a6670e59a2d6d1abdf66fb83de0a4e5f4e9 (patch) | |
| tree | 079461416d34877d38d11b09344bfb57616db4fd /src | |
| parent | Update POTFILES.in and POTFILES.skip (diff) | |
| download | inkscape-8b8e0a6670e59a2d6d1abdf66fb83de0a4e5f4e9.tar.gz inkscape-8b8e0a6670e59a2d6d1abdf66fb83de0a4e5f4e9.zip | |
Fix bug applying powerclip/mask to non cliped/masked elements
Diffstat (limited to 'src')
| -rw-r--r-- | src/live_effects/lpe-powerclip.cpp | 10 | ||||
| -rw-r--r-- | src/live_effects/lpe-powerclip.h | 1 | ||||
| -rw-r--r-- | src/live_effects/lpe-powermask.cpp | 10 | ||||
| -rw-r--r-- | src/live_effects/lpe-powermask.h | 1 |
4 files changed, 22 insertions, 0 deletions
diff --git a/src/live_effects/lpe-powerclip.cpp b/src/live_effects/lpe-powerclip.cpp index f4fb15dae..38a8d02a0 100644 --- a/src/live_effects/lpe-powerclip.cpp +++ b/src/live_effects/lpe-powerclip.cpp @@ -47,6 +47,16 @@ LPEPowerClip::LPEPowerClip(LivePathEffectObject *lpeobject) LPEPowerClip::~LPEPowerClip() = default; void +LPEPowerClip::doOnApply (SPLPEItem const * lpeitem) +{ + SPLPEItem * item = const_cast<SPLPEItem*>(lpeitem); + SPObject * clip_path = item->clip_ref->getObject(); + if (!clip_path) { + item->removeCurrentPathEffect(false); + } +} + +void LPEPowerClip::doBeforeEffect (SPLPEItem const* lpeitem){ SPObject * clip_path = SP_ITEM(sp_lpe_item)->clip_ref->getObject(); gchar * uri_str = uri.param_getSVGValue(); diff --git a/src/live_effects/lpe-powerclip.h b/src/live_effects/lpe-powerclip.h index 6e95ab4ab..6fc85cbab 100644 --- a/src/live_effects/lpe-powerclip.h +++ b/src/live_effects/lpe-powerclip.h @@ -18,6 +18,7 @@ class LPEPowerClip : public Effect { public: LPEPowerClip(LivePathEffectObject *lpeobject); ~LPEPowerClip() override; + void doOnApply (SPLPEItem const * lpeitem); void doBeforeEffect (SPLPEItem const* lpeitem) override; Geom::PathVector doEffect_path (Geom::PathVector const & path_in) override; void doOnRemove (SPLPEItem const* /*lpeitem*/) override; diff --git a/src/live_effects/lpe-powermask.cpp b/src/live_effects/lpe-powermask.cpp index 54168fdb5..6df0770a9 100644 --- a/src/live_effects/lpe-powermask.cpp +++ b/src/live_effects/lpe-powermask.cpp @@ -51,6 +51,16 @@ LPEPowerMask::LPEPowerMask(LivePathEffectObject *lpeobject) LPEPowerMask::~LPEPowerMask() = default; void +LPEPowerMask::doOnApply (SPLPEItem const * lpeitem) +{ + SPLPEItem *item = const_cast<SPLPEItem*>(lpeitem); + SPObject * mask = item->mask_ref->getObject(); + if (!mask) { + item->removeCurrentPathEffect(false); + } +} + +void LPEPowerMask::doBeforeEffect (SPLPEItem const* lpeitem){ //To avoid close of color dialog and better performance on change color SPObject * mask = SP_ITEM(sp_lpe_item)->mask_ref->getObject(); diff --git a/src/live_effects/lpe-powermask.h b/src/live_effects/lpe-powermask.h index 397356614..15533299d 100644 --- a/src/live_effects/lpe-powermask.h +++ b/src/live_effects/lpe-powermask.h @@ -19,6 +19,7 @@ class LPEPowerMask : public Effect { public: LPEPowerMask(LivePathEffectObject *lpeobject); ~LPEPowerMask() override; + void doOnApply (SPLPEItem const * lpeitem); void doBeforeEffect (SPLPEItem const* lpeitem) override; void doEffect (SPCurve * curve) override; void doOnRemove (SPLPEItem const* /*lpeitem*/) override; |
