::GetClientRect(GetHwnd(), &rc);
// This check is to work around a bug in TabCtrl_AdjustRect which will
- // cause a crash on win2k, or on XP with themes disabled, if the
- // wxNB_MULTILINE style is used and the rectangle is very small, (such as
- // when the notebook is first created.) The value of 20 is just
- // arbitrarily chosen, if there is a better way to determine this value
- // then please do so. --RD
- if ( !HasFlag(wxNB_MULTILINE) || (rc.right > 20 && rc.bottom > 20) )
+ // cause a crash on win2k or on XP with themes disabled if either
+ // wxNB_MULTILINE is used or tabs are placed on a side, if the rectangle
+ // is too small.
+ //
+ // The value of 20 is chosen arbitrarily but seems to work
+ if ( rc.right > 20 && rc.bottom > 20 )
{
TabCtrl_AdjustRect(GetHwnd(), false, &rc);
{
wxNotebookPage *pPage = m_pages[sel];
pPage->Show(true);
- pPage->SetFocus();
-
- // If the newly focused window is not a child of the new page,
- // SetFocus was not successful and the notebook itself should be
- // focused
- wxWindow *currentFocus = FindFocus();
- wxWindow *startFocus = currentFocus;
- while ( currentFocus && currentFocus != pPage && currentFocus != this )
- currentFocus = currentFocus->GetParent();
-
- if ( startFocus == pPage || currentFocus != pPage )
- SetFocus();
+
+ // As per bug report:
+ // http://sourceforge.net/tracker/index.php?func=detail&aid=1150659&group_id=9863&atid=109863,
+ // we should not set the page focus (and thereby the focus for
+ // a child window) since it erroneously selects radio button controls and also
+ // breaks keyboard handling for a notebook's scroll buttons. So
+ // we always focus the notebook and not the page.
+ SetFocus();
}
else // no pages in the notebook, give the focus to itself