summaryrefslogtreecommitdiffstats
path: root/src/dialogs/layers-panel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/dialogs/layers-panel.cpp')
-rw-r--r--src/dialogs/layers-panel.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/dialogs/layers-panel.cpp b/src/dialogs/layers-panel.cpp
index cdcafbbc1..a09ce1527 100644
--- a/src/dialogs/layers-panel.cpp
+++ b/src/dialogs/layers-panel.cpp
@@ -499,13 +499,16 @@ SPObject* LayersPanel::_selectedLayer()
void LayersPanel::_pushTreeSelectionToCurrent()
{
SPObject* inTree = _selectedLayer();
- if ( inTree ) {
- SPObject* curr = _desktop->currentLayer();
- if ( curr != inTree ) {
- _mgr->setCurrentLayer( inTree );
+ // TODO hunt down the possible API abuse in getting NULL
+ if ( _desktop->currentRoot() ) {
+ if ( inTree ) {
+ SPObject* curr = _desktop->currentLayer();
+ if ( curr != inTree ) {
+ _mgr->setCurrentLayer( inTree );
+ }
+ } else {
+ _mgr->setCurrentLayer( _desktop->doc()->root );
}
- } else {
- _mgr->setCurrentLayer( _desktop->doc()->root );
}
}