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:
parent
111d847de5
commit
ee3dd6dd5f
@ -2993,9 +2993,21 @@ void wxAuiNotebook::OnChildFocusNotebook(wxChildFocusEvent& evt)
|
||||
}
|
||||
|
||||
|
||||
// change the tab selection to the child
|
||||
// which was focused
|
||||
int idx = m_tabs.GetIdxFromWindow(evt.GetWindow());
|
||||
// find the page containing the focused child
|
||||
wxWindow* win = 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)
|
||||
{
|
||||
SetSelection(idx);
|
||||
|
Loading…
Reference in New Issue
Block a user