diff options
Diffstat (limited to 'src/ui/tools/eraser-tool.cpp')
| -rw-r--r-- | src/ui/tools/eraser-tool.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/ui/tools/eraser-tool.cpp b/src/ui/tools/eraser-tool.cpp index edda211ca..8a3dbc66e 100644 --- a/src/ui/tools/eraser-tool.cpp +++ b/src/ui/tools/eraser-tool.cpp @@ -682,7 +682,18 @@ void EraserTool::set_to_accumulated() { } toWorkOn.erase(std::remove(toWorkOn.begin(), toWorkOn.end(), acid), toWorkOn.end()); } else { - toWorkOn = selection->itemList(); + if ( !eraserMode ) { + Inkscape::Rubberband *r = Inkscape::Rubberband::get(desktop); + std::vector<SPItem*> touched; + touched = desktop->getDocument()->getItemsAtPoints(desktop->dkey, r->getPoints()); + for (std::vector<SPItem*>::const_iterator i = touched.begin();i!=touched.end();++i) { + if(selection->includes(*i)){ + toWorkOn.push_back((*i)); + } + } + } else { + toWorkOn = selection->itemList(); + } wasSelection = true; } |
