summaryrefslogtreecommitdiffstats
path: root/src/application/editor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/application/editor.cpp')
-rw-r--r--src/application/editor.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/application/editor.cpp b/src/application/editor.cpp
index 1cc45f3c7..56984dcbb 100644
--- a/src/application/editor.cpp
+++ b/src/application/editor.cpp
@@ -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*