diff options
| author | Martin Owens <doctormo@gmail.com> | 2013-06-29 15:43:12 +0000 |
|---|---|---|
| committer | Martin Owens <doctormo@gmail.com> | 2013-06-29 15:43:12 +0000 |
| commit | fefbd8cbb7c09c8c6241c7ef52413e37d4d5e6eb (patch) | |
| tree | cd007cf86ef7e02525865670d6a588be1f37a85e /src/ui/tool/multi-path-manipulator.cpp | |
| parent | Fix crash when undoing/redoing a duplicate layer. (diff) | |
| download | inkscape-fefbd8cbb7c09c8c6241c7ef52413e37d4d5e6eb.tar.gz inkscape-fefbd8cbb7c09c8c6241c7ef52413e37d4d5e6eb.zip | |
Make DAMN sure paths with zero nodes do not cause a crash.
Fixed bugs:
- https://launchpad.net/bugs/710637
(bzr r12396)
Diffstat (limited to 'src/ui/tool/multi-path-manipulator.cpp')
| -rw-r--r-- | src/ui/tool/multi-path-manipulator.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/ui/tool/multi-path-manipulator.cpp b/src/ui/tool/multi-path-manipulator.cpp index 70bd0e859..5d5ea2adc 100644 --- a/src/ui/tool/multi-path-manipulator.cpp +++ b/src/ui/tool/multi-path-manipulator.cpp @@ -224,10 +224,12 @@ void MultiPathManipulator::shiftSelection(int dir) SubpathList::iterator last_j; NodeList::iterator last_k; bool anything_found = false; + bool anynode_found = false; for (MapType::iterator i = _mmap.begin(); i != _mmap.end(); ++i) { SubpathList &sp = i->second->subpathList(); for (SubpathList::iterator j = sp.begin(); j != sp.end(); ++j) { + anynode_found = true; for (NodeList::iterator k = (*j)->begin(); k != (*j)->end(); ++k) { if (k->selected()) { last_i = i; @@ -249,10 +251,12 @@ void MultiPathManipulator::shiftSelection(int dir) if (!anything_found) { // select first / last node // this should never fail because there must be at least 1 non-empty manipulator - if (dir == 1) { + if (anynode_found) { + if (dir == 1) { _selection.insert((*_mmap.begin()->second->subpathList().begin())->begin().ptr()); - } else { + } else { _selection.insert((--(*--(--_mmap.end())->second->subpathList().end())->end()).ptr()); + } } return; } |
