applied patch 1908782 wxAuiMDIChildFrame not removed from wxAuiMDIClientWindow

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53508 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Benjamin Williams 2008-05-09 18:59:19 +00:00
parent a37e742445
commit 8691bf118c

View File

@ -417,10 +417,20 @@ wxAuiMDIChildFrame::wxAuiMDIChildFrame(wxAuiMDIParentFrame *parent,
wxAuiMDIChildFrame::~wxAuiMDIChildFrame() wxAuiMDIChildFrame::~wxAuiMDIChildFrame()
{ {
wxAuiMDIParentFrame* pParentFrame = GetMDIParentFrame(); wxAuiMDIParentFrame* pParentFrame = GetMDIParentFrame();
if (pParentFrame && pParentFrame->GetActiveChild() == this) if (pParentFrame)
{ {
pParentFrame->SetActiveChild(NULL); if (pParentFrame->GetActiveChild() == this)
pParentFrame->SetChildMenuBar(NULL); {
pParentFrame->SetActiveChild(NULL);
pParentFrame->SetChildMenuBar(NULL);
}
wxAuiMDIClientWindow* pClientWindow = pParentFrame->GetClientWindow();
wxASSERT(pClientWindow);
int idx = pClientWindow->GetPageIndex(this);
if (idx != wxNOT_FOUND)
{
pClientWindow->RemovePage(idx);
}
} }
#if wxUSE_MENUS #if wxUSE_MENUS
@ -768,7 +778,7 @@ void wxAuiMDIClientWindow::PageChanged(int old_selection, int new_selection)
// notify old active child that it has been deactivated // notify old active child that it has been deactivated
if (old_selection != -1) if ((old_selection != -1) && (old_selection < (int)GetPageCount()))
{ {
wxAuiMDIChildFrame* old_child = (wxAuiMDIChildFrame*)GetPage(old_selection); wxAuiMDIChildFrame* old_child = (wxAuiMDIChildFrame*)GetPage(old_selection);
wxASSERT_MSG(old_child, wxT("wxAuiMDIClientWindow::PageChanged - null page pointer")); wxASSERT_MSG(old_child, wxT("wxAuiMDIClientWindow::PageChanged - null page pointer"));