Code

Cmake: remove header files from source lists
[inkscape.git] / src / application / editor.cpp
index 1cc45f3c7ebf5388e55d32fe5ca83aed82b0a418..8f9638f82f40555caad580524ee5d711893be7a1 100644 (file)
@@ -55,7 +55,7 @@ Editor::create (gint argc, char **argv)
     return _instance;
 }
 
-Editor::Editor (gint argc, char **argv)
+Editor::Editor (gint /*argc*/, char **argv)
 :   _documents (0),
     _desktops (0),
     _argv0 (argv[0]),
@@ -109,15 +109,19 @@ Editor::getActiveDocument()
 void
 Editor::addDocument (SPDocument *doc)
 {
-    g_assert (!g_slist_find (_instance->_documents, doc));
-    _instance->_documents = g_slist_append (_instance->_documents, doc);
+    if ( _instance->_document_set.find(doc) == _instance->_document_set.end() ) {
+        _instance->_documents = g_slist_append (_instance->_documents, doc);
+    }
+    _instance->_document_set.insert(doc);
 }
 
 void
 Editor::removeDocument (SPDocument *doc)
 {
-    g_assert (g_slist_find (_instance->_documents, doc));
-    _instance->_documents = g_slist_remove (_instance->_documents, doc);
+    _instance->_document_set.erase(doc);
+    if ( _instance->_document_set.find(doc) == _instance->_document_set.end() ) {
+        _instance->_documents = g_slist_remove (_instance->_documents, doc);
+    }
 }
 
 SPDesktop*