diff options
Diffstat (limited to 'src/sp-lpe-item.cpp')
| -rw-r--r-- | src/sp-lpe-item.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/sp-lpe-item.cpp b/src/sp-lpe-item.cpp index bb7d9f273..8ca6e6490 100644 --- a/src/sp-lpe-item.cpp +++ b/src/sp-lpe-item.cpp @@ -249,7 +249,7 @@ bool SPLPEItem::performPathEffect(SPCurve *curve) { // Groups have their doBeforeEffect called elsewhere if (!SP_IS_GROUP(this)) { - lpe->doBeforeEffect(this); + lpe->doBeforeEffect_impl(this); } try { @@ -263,6 +263,9 @@ bool SPLPEItem::performPathEffect(SPCurve *curve) { } return false; } + if (!SP_IS_GROUP(this)) { + lpe->doAfterEffect(this); + } } } } @@ -462,10 +465,13 @@ void SPLPEItem::removeCurrentPathEffect(bool keep_paths) if (!lperef) return; + if (Inkscape::LivePathEffect::Effect* effect_ = this->getCurrentLPE()) { + effect_->doOnRemove(this); + } PathEffectList new_list = *this->path_effect_list; new_list.remove(lperef); //current lpe ref is always our 'own' pointer from the path_effect_list std::string r = patheffectlist_write_svg(new_list); - + if (!r.empty()) { this->getRepr()->setAttribute("inkscape:path-effect", r.c_str()); } else { |
