X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8bf30fe9b0b40d1a6f54608588121212c2c4e037..68cb30154e69c03d141aa649f024e916c5a96540:/src/generic/panelg.cpp?ds=sidebyside diff --git a/src/generic/panelg.cpp b/src/generic/panelg.cpp index 3052aabd7b..73a7a04cf3 100644 --- a/src/generic/panelg.cpp +++ b/src/generic/panelg.cpp @@ -36,9 +36,6 @@ #include "wx/log.h" #endif -#include "wx/toolbar.h" -#include "wx/statusbr.h" - #include "wx/generic/panelg.h" // ---------------------------------------------------------------------------- @@ -65,7 +62,9 @@ END_EVENT_TABLE() void wxPanel::Init() { m_winLastFocused = (wxWindow *)NULL; +#if wxUSE_BUTTON m_btnDefault = (wxButton *)NULL; +#endif // wxUSE_BUTTON } bool wxPanel::Create(wxWindow *parent, wxWindowID id, @@ -243,7 +242,7 @@ void wxPanel::OnNavigationKey( wxNavigationKeyEvent& event ) wxWindow *child = node->GetData(); - if ( child->AcceptsFocus() ) + if ( child->AcceptsFocusFromKeyboard() ) { m_winLastFocused = child; // should be redundant, but it is not @@ -284,6 +283,13 @@ void wxPanel::OnNavigationKey( wxNavigationKeyEvent& event ) event.Skip(); } +void wxPanel::RemoveChild(wxWindowBase *child) +{ + if ( child == m_winLastFocused ) + m_winLastFocused = NULL; + wxWindow::RemoveChild(child); +} + void wxPanel::SetFocus() { wxLogTrace(_T("focus"), _T("SetFocus on wxPanel 0x%08x."), GetHandle()); @@ -352,7 +358,7 @@ bool wxSetFocusToChild(wxWindow *win, wxWindow **childLastFocused) // It might happen that the window got reparented or no longer accepts // the focus. if ( (*childLastFocused)->GetParent() == win && - (*childLastFocused)->AcceptsFocus() ) + (*childLastFocused)->AcceptsFocusFromKeyboard() ) { wxLogTrace(_T("focus"), _T("SetFocusToChild() => last child (0x%08x)."), @@ -374,15 +380,7 @@ bool wxSetFocusToChild(wxWindow *win, wxWindow **childLastFocused) { wxWindow *child = node->GetData(); - if ( child->AcceptsFocus() - && !child->IsTopLevel() -#if wxUSE_TOOLBAR - && !wxDynamicCast(child, wxToolBar) -#endif // wxUSE_TOOLBAR -#if wxUSE_STATUSBAR - && !wxDynamicCast(child, wxStatusBar) -#endif // wxUSE_STATUSBAR - ) + if ( child->AcceptsFocusFromKeyboard() && !child->IsTopLevel() ) { wxLogTrace(_T("focus"), _T("SetFocusToChild() => first child (0x%08x)."),