diff options
| author | su_v <suv-sf@users.sourceforge.net> | 2012-11-10 06:07:17 +0000 |
|---|---|---|
| committer | ~suv <suv-sf@users.sourceforge.net> | 2012-11-10 06:07:17 +0000 |
| commit | 6fadc1a815eca2b0a85038ae95d9dd7dbe8a8ae7 (patch) | |
| tree | 951c9b05d57c8ffe745561865253055ae2e8f566 /src/desktop.cpp | |
| parent | merge from trunk (r11858) (diff) | |
| parent | Win32. Updating the trunk again for devlibs r36. (diff) | |
| download | inkscape-6fadc1a815eca2b0a85038ae95d9dd7dbe8a8ae7.tar.gz inkscape-6fadc1a815eca2b0a85038ae95d9dd7dbe8a8ae7.zip | |
merge from trunk (r11865)
(bzr r11668.1.39)
Diffstat (limited to 'src/desktop.cpp')
| -rw-r--r-- | src/desktop.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/desktop.cpp b/src/desktop.cpp index fa0c8647f..f10174119 100644 --- a/src/desktop.cpp +++ b/src/desktop.cpp @@ -549,12 +549,17 @@ void SPDesktop::toggleLayerSolo(SPObject *object) { bool othersShowing = false; std::vector<SPObject*> layers; for ( SPObject* obj = Inkscape::next_layer(currentRoot(), object); obj; obj = Inkscape::next_layer(currentRoot(), obj) ) { - layers.push_back(obj); - othersShowing |= !SP_ITEM(obj)->isHidden(); + // Don't hide ancestors, since that would in turn hide the layer as well + if (!obj->isAncestorOf(object)) { + layers.push_back(obj); + othersShowing |= !SP_ITEM(obj)->isHidden(); + } } for ( SPObject* obj = Inkscape::previous_layer(currentRoot(), object); obj; obj = Inkscape::previous_layer(currentRoot(), obj) ) { - layers.push_back(obj); - othersShowing |= !SP_ITEM(obj)->isHidden(); + if (!obj->isAncestorOf(object)) { + layers.push_back(obj); + othersShowing |= !SP_ITEM(obj)->isHidden(); + } } |
