git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53508
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
wxAuiMDIChildFrame::~wxAuiMDIChildFrame()
{
wxAuiMDIParentFrame* pParentFrame = GetMDIParentFrame();
wxAuiMDIChildFrame::~wxAuiMDIChildFrame()
{
wxAuiMDIParentFrame* pParentFrame = GetMDIParentFrame();
- if (pParentFrame && pParentFrame->GetActiveChild() == this)
- pParentFrame->SetActiveChild(NULL);
- pParentFrame->SetChildMenuBar(NULL);
+ if (pParentFrame->GetActiveChild() == this)
+ {
+ pParentFrame->SetActiveChild(NULL);
+ pParentFrame->SetChildMenuBar(NULL);
+ }
+ wxAuiMDIClientWindow* pClientWindow = pParentFrame->GetClientWindow();
+ wxASSERT(pClientWindow);
+ int idx = pClientWindow->GetPageIndex(this);
+ if (idx != wxNOT_FOUND)
+ {
+ pClientWindow->RemovePage(idx);
+ }
// 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);
wxASSERT_MSG(old_child, wxT("wxAuiMDIClientWindow::PageChanged - null page pointer"));
{
wxAuiMDIChildFrame* old_child = (wxAuiMDIChildFrame*)GetPage(old_selection);
wxASSERT_MSG(old_child, wxT("wxAuiMDIClientWindow::PageChanged - null page pointer"));