diff options
Diffstat (limited to 'src/application/editor.cpp')
| -rw-r--r-- | src/application/editor.cpp | 12 |
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* |
