summaryrefslogtreecommitdiffstats
path: root/src/sp-lpe-item.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/sp-lpe-item.cpp')
-rw-r--r--src/sp-lpe-item.cpp10
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 {