void EditorManager::OnPageClosed(wxAuiNotebookEvent& event) { int index = event.GetSelection(); EditorBase* editor = NULL; EditorIndexMap::iterator it; for(it = mEditorIndexMap.begin(); it != mEditorIndexMap.end(); ++it) { if(it->second == index) { editor = it->first; editor->deactivate(); mEditorIndexMap.erase(it); break; } } if(editor != NULL) { if(editor == mActiveEditor) mActiveEditor = NULL; EditorList::iterator lit; for(lit = mEditors.begin(); lit != mEditors.end(); ++lit) { if((*lit) == editor) { mEditors.erase(lit); break; } } } // Is this handled by OnPageChanged? int selIndex = event.GetSelection(); for(it = mEditorIndexMap.begin(); it != mEditorIndexMap.end(); ++it) { if(it->second == index) { setActiveEditor(it->first); break; } } }