summaryrefslogtreecommitdiffstats
path: root/src/ui/tools/eraser-tool.cpp
diff options
context:
space:
mode:
authorShlomi Fish <shlomif@shlomifish.org>2016-10-08 15:39:06 +0000
committerShlomi Fish <shlomif@shlomifish.org>2016-10-08 15:39:06 +0000
commit2a5534a166dff8bfe6b56c8a3b496e989280fbd1 (patch)
treedbd8330a6b3dcfb201ee751dbf283a17a41a2dfa /src/ui/tools/eraser-tool.cpp
parentMerged. (diff)
parent[Bug #770681] KEY MAPPING: Comma and period hijacked by scaling. (diff)
downloadinkscape-2a5534a166dff8bfe6b56c8a3b496e989280fbd1.tar.gz
inkscape-2a5534a166dff8bfe6b56c8a3b496e989280fbd1.zip
Merged.
(bzr r15100.1.31)
Diffstat (limited to 'src/ui/tools/eraser-tool.cpp')
-rw-r--r--src/ui/tools/eraser-tool.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/ui/tools/eraser-tool.cpp b/src/ui/tools/eraser-tool.cpp
index 38c72cac0..12686160b 100644
--- a/src/ui/tools/eraser-tool.cpp
+++ b/src/ui/tools/eraser-tool.cpp
@@ -766,9 +766,17 @@ void EraserTool::set_to_accumulated() {
if (bbox && bbox->intersects(*eraserBbox)) {
SPClipPath *clip_path = item->clip_ref->getObject();
if (clip_path) {
- SPPath *clip_data = SP_PATH(clip_path->firstChild());
+ std::vector<SPItem*> selected;
+ selected.push_back(SP_ITEM(clip_path->firstChild()));
+ std::vector<Inkscape::XML::Node*> to_select;
+ std::vector<SPItem*> items(selected);
+ sp_item_list_to_curves(items, selected, to_select);
+ Inkscape::XML::Node * clip_data = SP_ITEM(clip_path->firstChild())->getRepr();
+ if (!clip_data && !to_select.empty()) {
+ clip_data = *(to_select.begin());
+ }
if (clip_data) {
- Inkscape::XML::Node *dup_clip = SP_OBJECT(clip_data)->getRepr()->duplicate(xml_doc);
+ Inkscape::XML::Node *dup_clip = clip_data->duplicate(xml_doc);
if (dup_clip) {
SPItem * dup_clip_obj = SP_ITEM(item_repr->parent->appendChildRepr(dup_clip));
if (dup_clip_obj) {