Code

remove desktop-affine.cpp
[inkscape.git] / src / layer-manager.cpp
index 32a8b46ff0ee0717dbe236247f2dfb5884ca08b3..3e49edac5723299ab5699850b14ab31fe6c478c1 100644 (file)
@@ -16,7 +16,7 @@
 #include "desktop.h"
 #include "desktop-handles.h"
 #include "layer-manager.h"
-#include "prefs-utils.h"
+#include "preferences.h"
 #include "ui/view/view.h"
 #include "selection.h"
 #include "sp-object.h"
@@ -150,7 +150,8 @@ void LayerManager::setCurrentLayer( SPObject* obj )
     if ( _desktop->currentRoot() ) {
         _desktop->setCurrentLayer( obj );
 
-        if ( prefs_get_int_attribute_limited("options.selection", "layerdeselect", 1, 0, 1) ) {
+        Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+        if (prefs->getBool("/options/selection/layerdeselect", true)) {
             sp_desktop_selection( _desktop )->clear();
         }
     }
@@ -283,7 +284,9 @@ void LayerManager::_rebuild() {
                     layersToAdd.insert(SP_GROUP(layer));
                 }
                 for ( std::set<SPGroup*>::iterator it = additional.begin(); it != additional.end(); ++it ) {
-                    layersToAdd.insert(*it);
+                    if ( !includes(*it) ) {
+                        layersToAdd.insert(*it);
+                    }
                 }
             }
         }