summaryrefslogtreecommitdiffstats
path: root/src/ui/tools/eraser-tool.cpp
diff options
context:
space:
mode:
authorJabier Arraiza Cenoz <jabier.arraiza@marker.es>2016-03-04 15:02:09 +0000
committerjabiertxof <info@marker.es>2016-03-04 15:02:09 +0000
commit532e38d87f1465b0cce151bcc520f8f5b0b6bffc (patch)
tree6d50ec0051a3ee8222a7930bbd80ab4c53233d0e /src/ui/tools/eraser-tool.cpp
parentHide with widget in delete mode of eraser tool (diff)
downloadinkscape-532e38d87f1465b0cce151bcc520f8f5b0b6bffc.tar.gz
inkscape-532e38d87f1465b0cce151bcc520f8f5b0b6bffc.zip
Fix bug: 230480 eraser tool always deletes selected objects
Fixed bugs: - https://launchpad.net/bugs/230480 (bzr r14685)
Diffstat (limited to 'src/ui/tools/eraser-tool.cpp')
-rw-r--r--src/ui/tools/eraser-tool.cpp13
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;
}