X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/87a1e3085bc19deacd312a1dcf7d4eb89f51d5a3..5ebdc86afc95a60fbeb0b2a71c38dd26c8a1b0b4:/src/generic/panelg.cpp diff --git a/src/generic/panelg.cpp b/src/generic/panelg.cpp index 52d864fbf5..9ac21f6245 100644 --- a/src/generic/panelg.cpp +++ b/src/generic/panelg.cpp @@ -29,7 +29,6 @@ #include "wx/generic/panelg.h" -#if !USE_SHARED_LIBRARY IMPLEMENT_DYNAMIC_CLASS(wxPanel, wxWindow) BEGIN_EVENT_TABLE(wxPanel, wxWindow) @@ -39,7 +38,6 @@ BEGIN_EVENT_TABLE(wxPanel, wxWindow) EVT_SIZE(wxPanel::OnSize) END_EVENT_TABLE() -#endif void wxPanel::Init() { @@ -190,7 +188,7 @@ void wxPanel::OnSize(wxSizeEvent& WXUNUSED(event)) void wxPanel::SetFocus() { // If the panel gets the focus *by way of getting it set directly* - // we move it to the first window that can get it. + // we move the focus to the first window that can get it. wxNode *node = GetChildren().First(); while (node) @@ -213,13 +211,15 @@ void wxPanel::SetFocus() void wxPanel::OnFocus(wxFocusEvent& event) { // If the panel gets the focus *by way of getting clicked on* - // we move it to either the last window that had the focus or - // the first one that can get it. + // we move the focus to either the last window that had the + // focus or the first one that can get it. if (m_winLastFocused) { - // it might happen that the window got reparented... - if ( m_winLastFocused->GetParent() == this ) + // It might happen that the window got reparented or no longer + // accepts the focus. + if ((m_winLastFocused->GetParent() == this) && + (m_winLastFocused->AcceptsFocus())) { m_winLastFocused->SetFocus(); return;