Fix bug with not selecting wxAuiNotebook page when its child was focused.

The code in OnChildFocusNotebook() handler only worked correctly if the page
itself was focused but not if the focus was given to one of its children --
which should still make the page itself current.

Closes #15471.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74769 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2013-09-06 12:27:04 +00:00
parent 111d847de5
commit ee3dd6dd5f

View File

@ -2993,9 +2993,21 @@ void wxAuiNotebook::OnChildFocusNotebook(wxChildFocusEvent& evt)
} }
// change the tab selection to the child // find the page containing the focused child
// which was focused wxWindow* win = evt.GetWindow();
int idx = m_tabs.GetIdxFromWindow(evt.GetWindow()); while ( win )
{
// pages have the notebook as the parent, so stop when we reach one
// (and also stop in the impossible case of no parent at all)
wxWindow* const parent = win->GetParent();
if ( !parent || parent == this )
break;
win = parent;
}
// change the tab selection to this page
int idx = m_tabs.GetIdxFromWindow(win);
if (idx != -1 && idx != m_curPage) if (idx != -1 && idx != m_curPage)
{ {
SetSelection(idx); SetSelection(idx);