diff options
| author | Jabier Arraiza <jabier.arraiza@marker.es> | 2018-03-14 22:02:47 +0000 |
|---|---|---|
| committer | Jabier Arraiza <jabier.arraiza@marker.es> | 2018-03-26 17:48:34 +0000 |
| commit | 01b27a996de7aa03e5ec7b961ffd7d0f2e8625c6 (patch) | |
| tree | e1ebbf6b158fbe8d308e2f5518c90cd17c182fb5 /src/ui/tools | |
| parent | Allow path move (diff) | |
| download | inkscape-01b27a996de7aa03e5ec7b961ffd7d0f2e8625c6.tar.gz inkscape-01b27a996de7aa03e5ec7b961ffd7d0f2e8625c6.zip | |
Allow upadate shapen innside groups with LPE
Diffstat (limited to 'src/ui/tools')
| -rw-r--r-- | src/ui/tools/arc-tool.cpp | 2 | ||||
| -rw-r--r-- | src/ui/tools/calligraphic-tool.cpp | 1 | ||||
| -rw-r--r-- | src/ui/tools/eraser-tool.cpp | 9 | ||||
| -rw-r--r-- | src/ui/tools/freehand-base.cpp | 5 | ||||
| -rw-r--r-- | src/ui/tools/rect-tool.cpp | 6 | ||||
| -rw-r--r-- | src/ui/tools/spiral-tool.cpp | 2 | ||||
| -rw-r--r-- | src/ui/tools/star-tool.cpp | 3 |
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")); |
