X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3c7789014106c9269b0f4ecc1a3071b14f351d3f..f380e251aad15c3c764dbcaf703b05eb202efa30:/src/aui/auibook.cpp diff --git a/src/aui/auibook.cpp b/src/aui/auibook.cpp index 607722c115..f9cb18352d 100644 --- a/src/aui/auibook.cpp +++ b/src/aui/auibook.cpp @@ -2898,7 +2898,7 @@ void wxAuiNotebook::InitNotebook(long style) wxAuiNotebook::~wxAuiNotebook() { // Indicate we're deleting pages - m_isBeingDeleted = true; + SendDestroyEvent(); while ( GetPageCount() > 0 ) DeletePage(0); @@ -3438,7 +3438,22 @@ size_t wxAuiNotebook::SetSelection(size_t new_page) void wxAuiNotebook::SetSelectionToWindow(wxWindow *win) { const int idx = m_tabs.GetIdxFromWindow(win); - wxCHECK_RET( idx != wxNOT_FOUND, _T("invalid notebook page") ); + wxCHECK_RET( idx != wxNOT_FOUND, wxT("invalid notebook page") ); + + + // since a tab was clicked, let the parent know that we received + // the focus, even if we will assign that focus immediately + // to the child tab in the SetSelection call below + // (the child focus event will also let wxAuiManager, if any, + // know that the notebook control has been activated) + + wxWindow* parent = GetParent(); + if (parent) + { + wxChildFocusEvent eventFocus(this); + parent->GetEventHandler()->ProcessEvent(eventFocus); + } + SetSelection(idx); } @@ -3829,7 +3844,7 @@ void wxAuiNotebook::OnTabEndDrag(wxAuiNotebookEvent& evt) wxAuiTabCtrl* src_tabs = (wxAuiTabCtrl*)evt.GetEventObject(); - wxCHECK_RET( src_tabs, _T("no source object?") ); + wxCHECK_RET( src_tabs, wxT("no source object?") ); src_tabs->SetCursor(wxCursor(wxCURSOR_ARROW)); @@ -3892,7 +3907,7 @@ void wxAuiNotebook::OnTabEndDrag(wxAuiNotebookEvent& evt) // get main index of the page int main_idx = m_tabs.GetIdxFromWindow(src_page); - wxCHECK_RET( main_idx != wxNOT_FOUND, _T("no source page?") ); + wxCHECK_RET( main_idx != wxNOT_FOUND, wxT("no source page?") ); // make a copy of the page info @@ -4290,7 +4305,7 @@ void wxAuiNotebook::OnTabButton(wxAuiNotebookEvent& evt) #endif { int main_idx = m_tabs.GetIdxFromWindow(close_wnd); - wxCHECK_RET( main_idx != wxNOT_FOUND, _T("no page to delete?") ); + wxCHECK_RET( main_idx != wxNOT_FOUND, wxT("no page to delete?") ); DeletePage(main_idx); }