X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c6212a0cb7e6285f62198a9411d91bbe8dc06e60..1c9919467b422edf561753db25605bc7aa293b55:/src/aui/auibook.cpp diff --git a/src/aui/auibook.cpp b/src/aui/auibook.cpp index 690acc096b..3cdc6a6f06 100644 --- a/src/aui/auibook.cpp +++ b/src/aui/auibook.cpp @@ -35,8 +35,6 @@ #ifdef __WXMAC__ #include "wx/osx/private.h" -// for themeing support -#include #endif #include "wx/arrimpl.cpp" @@ -3438,7 +3436,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 +3842,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 +3905,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 +4303,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); }