Fixes for segfaults when the parent frame is destroyed

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44104 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn 2007-01-06 08:59:01 +00:00
parent 0eaf8cd16c
commit b0a54b8a6b

View File

@ -82,8 +82,9 @@ wxAuiMDIParentFrame::~wxAuiMDIParentFrame()
wxDELETE(m_pClientWindow);
#if wxUSE_MENUS
wxDELETE(m_pMyMenuBar);
RemoveWindowMenu(GetMenuBar());
delete m_pWindowMenu;
wxDELETE(m_pWindowMenu);
#endif // wxUSE_MENUS
}
@ -166,7 +167,7 @@ void wxAuiMDIParentFrame::SetMenuBar(wxMenuBar* pMenuBar)
AddWindowMenu(pMenuBar);
wxFrame::SetMenuBar(pMenuBar);
m_pMyMenuBar = GetMenuBar();
//m_pMyMenuBar = GetMenuBar();
}
#endif // wxUSE_MENUS
@ -179,7 +180,7 @@ void wxAuiMDIParentFrame::SetChildMenuBar(wxAuiMDIChildFrame* pChild)
SetMenuBar(m_pMyMenuBar);
// Make sure we know our menu bar is in use
//m_pMyMenuBar = NULL;
m_pMyMenuBar = NULL;
}
else
{
@ -416,6 +417,13 @@ wxAuiMDIChildFrame::wxAuiMDIChildFrame(wxAuiMDIParentFrame *parent,
wxAuiMDIChildFrame::~wxAuiMDIChildFrame()
{
wxAuiMDIParentFrame* pParentFrame = GetMDIParentFrame();
if (pParentFrame && pParentFrame->GetActiveChild() == this)
{
pParentFrame->SetActiveChild(NULL);
pParentFrame->SetChildMenuBar(NULL);
}
#if wxUSE_MENUS
wxDELETE(m_pMenuBar);
#endif // wxUSE_MENUS