X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/77ffb5937e89927b621128789401db8921fe580f..095b80e2b5120d4c476a834b2017c355fa9afef0:/src/common/containr.cpp diff --git a/src/common/containr.cpp b/src/common/containr.cpp index 6df39ca62c..4c3b90575d 100644 --- a/src/common/containr.cpp +++ b/src/common/containr.cpp @@ -6,7 +6,7 @@ // Created: 06.08.01 // RCS-ID: $Id$ // Copyright: (c) 2001 Vadim Zeitlin -// License: wxWidgets licence +// License: wxWindows licence /////////////////////////////////////////////////////////////////////////////// // ============================================================================ @@ -342,8 +342,13 @@ bool wxControlContainer::DoSetFocus() wxLogTrace(_T("focus"), _T("SetFocus on wxPanel 0x%08lx."), (unsigned long)m_winParent->GetHandle()); + // FIXME: this recursion protection is needed for wxMac, + // but on Windows (at least), it breaks focus handling. + // This needs to be investigated further. +#ifdef __WXMAC__ if (m_inSetFocus) return true; +#endif m_inSetFocus = true; @@ -357,7 +362,8 @@ bool wxControlContainer::DoSetFocus() if ( win == m_winParent ) { // our child already has focus, don't take it away from it - return TRUE; + m_inSetFocus = false; + return true; } if ( win->IsTopLevel() )