]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/panelg.cpp
removed assert which could be provoked by correct code
[wxWidgets.git] / src / generic / panelg.cpp
index 3052aabd7b1786988a8f0378f32801659548ef50..73a7a04cf34a79c4b9ec8df2f74c3427790455ea 100644 (file)
@@ -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)."),