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
}
- // 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);