summaryrefslogtreecommitdiffstats
path: root/src/ui
diff options
context:
space:
mode:
authorJabier Arraiza <jabier.arraiza@marker.es>2018-03-14 22:02:47 +0000
committerJabier Arraiza <jabier.arraiza@marker.es>2018-03-26 17:48:34 +0000
commit01b27a996de7aa03e5ec7b961ffd7d0f2e8625c6 (patch)
treee1ebbf6b158fbe8d308e2f5518c90cd17c182fb5 /src/ui
parentAllow path move (diff)
downloadinkscape-01b27a996de7aa03e5ec7b961ffd7d0f2e8625c6.tar.gz
inkscape-01b27a996de7aa03e5ec7b961ffd7d0f2e8625c6.zip
Allow upadate shapen innside groups with LPE
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/tools/arc-tool.cpp2
-rw-r--r--src/ui/tools/calligraphic-tool.cpp1
-rw-r--r--src/ui/tools/eraser-tool.cpp9
-rw-r--r--src/ui/tools/freehand-base.cpp5
-rw-r--r--src/ui/tools/rect-tool.cpp6
-rw-r--r--src/ui/tools/spiral-tool.cpp2
-rw-r--r--src/ui/tools/star-tool.cpp3
7 files changed, 22 insertions, 6 deletions
diff --git a/src/ui/tools/arc-tool.cpp b/src/ui/tools/arc-tool.cpp
index e620b7cb1..34b29f3bb 100644
--- a/src/ui/tools/arc-tool.cpp
+++ b/src/ui/tools/arc-tool.cpp
@@ -425,7 +425,7 @@ void ArcTool::finishItem() {
desktop->getSelection()->set(this->arc);
- DocumentUndo::done(desktop->getDocument(), SP_VERB_CONTEXT_ARC, _("Create ellipse"));
+ DocumentUndo::done(desktop->getDocument(), SP_VERB_CONTEXT_ARC, _("Create ellipse"));
this->arc = NULL;
}
diff --git a/src/ui/tools/calligraphic-tool.cpp b/src/ui/tools/calligraphic-tool.cpp
index ccf5e3be5..c080571d0 100644
--- a/src/ui/tools/calligraphic-tool.cpp
+++ b/src/ui/tools/calligraphic-tool.cpp
@@ -948,7 +948,6 @@ void CalligraphicTool::set_to_accumulated(bool unionize, bool subtract) {
// This is its result.
result = desktop->getSelection()->singleItem();
}
-
result->doWriteTransform(result->transform, NULL, true);
} else {
if (this->repr) {
diff --git a/src/ui/tools/eraser-tool.cpp b/src/ui/tools/eraser-tool.cpp
index 8bf4ad82d..07c9c118b 100644
--- a/src/ui/tools/eraser-tool.cpp
+++ b/src/ui/tools/eraser-tool.cpp
@@ -835,8 +835,13 @@ void EraserTool::set_to_accumulated() {
selection->clear();
if ( wasSelection ) {
- if ( !remainingItems.empty() ) {
- selection->add(remainingItems.begin(), remainingItems.end());
+ for (std::vector<SPItem*>::const_iterator j = remainingItems.begin(); j != remainingItems.end(); ++j){
+ SPItem * item = *j;
+ SPLPEItem * lpeitem = dynamic_cast<SPLPEItem *>(item);
+ if (lpeitem->hasPathEffectRecursive()) {
+ sp_lpe_item_update_patheffect (lpeitem, true, false);
+ }
+ selection->add(item);
}
}
}
diff --git a/src/ui/tools/freehand-base.cpp b/src/ui/tools/freehand-base.cpp
index 76aff2c0e..974a97995 100644
--- a/src/ui/tools/freehand-base.cpp
+++ b/src/ui/tools/freehand-base.cpp
@@ -588,7 +588,10 @@ static void spdc_check_for_and_apply_waiting_LPE(FreehandBase *dc, SPItem *item,
sp_repr_css_attr_unref(css);
return;
}
-
+ SPLPEItem * lpeitem = dynamic_cast<SPLPEItem *>(item);
+ if (!lpeitem->hasPathEffect() && lpeitem->hasPathEffectRecursive()) {
+ sp_lpe_item_update_patheffect (lpeitem, true, false);
+ }
if (dc->waiting_LPE_type != INVALID_LPE) {
Effect::createAndApply(dc->waiting_LPE_type, dc->desktop->doc(), item);
dc->waiting_LPE_type = INVALID_LPE;
diff --git a/src/ui/tools/rect-tool.cpp b/src/ui/tools/rect-tool.cpp
index 60524b275..7442c6eca 100644
--- a/src/ui/tools/rect-tool.cpp
+++ b/src/ui/tools/rect-tool.cpp
@@ -460,9 +460,13 @@ void RectTool::finishItem() {
this->rect->doWriteTransform(this->rect->transform, NULL, true);
this->desktop->canvas->endForcedFullRedraws();
-
+
this->desktop->getSelection()->set(this->rect);
+ if (this->rect->hasPathEffectRecursive()) {
+ this->desktop->getSelection()->toCurves();
+ }
+
DocumentUndo::done(this->desktop->getDocument(), SP_VERB_CONTEXT_RECT, _("Create rectangle"));
this->rect = NULL;
diff --git a/src/ui/tools/spiral-tool.cpp b/src/ui/tools/spiral-tool.cpp
index 7a1881295..66779c3a1 100644
--- a/src/ui/tools/spiral-tool.cpp
+++ b/src/ui/tools/spiral-tool.cpp
@@ -398,6 +398,8 @@ void SpiralTool::finishItem() {
this->desktop->canvas->endForcedFullRedraws();
this->desktop->getSelection()->set(this->spiral);
+ this->desktop->getSelection()->set(this->spiral);
+
DocumentUndo::done(this->desktop->getDocument(), SP_VERB_CONTEXT_SPIRAL, _("Create spiral"));
this->spiral = NULL;
diff --git a/src/ui/tools/star-tool.cpp b/src/ui/tools/star-tool.cpp
index d6fcf0409..9712bb7bd 100644
--- a/src/ui/tools/star-tool.cpp
+++ b/src/ui/tools/star-tool.cpp
@@ -421,6 +421,9 @@ void StarTool::finishItem() {
desktop->canvas->endForcedFullRedraws();
desktop->getSelection()->set(this->star);
+ if (this->star->hasPathEffectRecursive()) {
+ sp_lpe_item_update_patheffect (this->star, true, false);
+ }
DocumentUndo::done(desktop->getDocument(), SP_VERB_CONTEXT_STAR,
_("Create star"));