From: Václav Slavík Date: Fri, 23 Jul 2004 16:44:46 +0000 (+0000) Subject: reverted JS' rev. 1.27 - the real fix was 1.28, disabling recursion protection is... X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/2e07bdda0ab5e73554a65a32864b6829f7bf61e4 reverted JS' rev. 1.27 - the real fix was 1.28, disabling recursion protection is not good idea git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28424 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/common/containr.cpp b/src/common/containr.cpp index 4c3b90575d..f9595d1f0a 100644 --- a/src/common/containr.cpp +++ b/src/common/containr.cpp @@ -342,16 +342,9 @@ 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; - + // when the panel gets the focus we move the focus to either the last // window that had the focus or the first one that can get it unless the // focus had been already set to some other child @@ -362,7 +355,6 @@ bool wxControlContainer::DoSetFocus() if ( win == m_winParent ) { // our child already has focus, don't take it away from it - m_inSetFocus = false; return true; } @@ -375,6 +367,9 @@ bool wxControlContainer::DoSetFocus() win = win->GetParent(); } + + // protect against infinite recursion: + m_inSetFocus = true; bool ret = SetFocusToChild();