X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/77ffb5937e89927b621128789401db8921fe580f..ff9f7a12ff963859ef4928809f2296fa4fc4afd6:/src/common/containr.cpp diff --git a/src/common/containr.cpp b/src/common/containr.cpp index 6df39ca62c..3d55aa14a9 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 /////////////////////////////////////////////////////////////////////////////// // ============================================================================ @@ -64,21 +64,21 @@ bool wxControlContainer::AcceptsFocus() const // at least one child will accept focus wxWindowList::compatibility_iterator node = m_winParent->GetChildren().GetFirst(); if ( !node ) - return TRUE; + return true; #ifdef __WXMAC__ // wxMac has eventually the two scrollbars as children, they don't count // as real children in the algorithm mentioned above bool hasRealChildren = false ; #endif - + while ( node ) { wxWindow *child = node->GetData(); if ( child->AcceptsFocus() ) { - return TRUE; + return true; } #ifdef __WXMAC__ @@ -88,14 +88,14 @@ bool wxControlContainer::AcceptsFocus() const #endif node = node->GetNext(); } - + #ifdef __WXMAC__ if ( !hasRealChildren ) - return TRUE ; + return true ; #endif } - return FALSE; + return false; } void wxControlContainer::SetLastFocus(wxWindow *win) @@ -308,7 +308,7 @@ void wxControlContainer::HandleOnNavigationKey( wxNavigationKeyEvent& event ) } //else: the child manages its focus itself - event.Skip( FALSE ); + event.Skip( false ); return; } @@ -345,8 +345,6 @@ bool wxControlContainer::DoSetFocus() if (m_inSetFocus) return true; - 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 @@ -357,7 +355,7 @@ bool wxControlContainer::DoSetFocus() if ( win == m_winParent ) { // our child already has focus, don't take it away from it - return TRUE; + return true; } if ( win->IsTopLevel() ) @@ -370,6 +368,9 @@ bool wxControlContainer::DoSetFocus() win = win->GetParent(); } + // protect against infinite recursion: + m_inSetFocus = true; + bool ret = SetFocusToChild(); m_inSetFocus = false; @@ -400,8 +401,8 @@ bool wxControlContainer::SetFocusToChild() bool wxSetFocusToChild(wxWindow *win, wxWindow **childLastFocused) { - wxCHECK_MSG( win, FALSE, _T("wxSetFocusToChild(): invalid window") ); - wxCHECK_MSG( childLastFocused, FALSE, + wxCHECK_MSG( win, false, _T("wxSetFocusToChild(): invalid window") ); + wxCHECK_MSG( childLastFocused, false, _T("wxSetFocusToChild(): NULL child poonter") ); if ( *childLastFocused ) @@ -416,7 +417,7 @@ bool wxSetFocusToChild(wxWindow *win, wxWindow **childLastFocused) // not SetFocusFromKbd(): we're restoring focus back to the old // window and not setting it as the result of a kbd action (*childLastFocused)->SetFocus(); - return TRUE; + return true; } else { @@ -439,12 +440,12 @@ bool wxSetFocusToChild(wxWindow *win, wxWindow **childLastFocused) *childLastFocused = child; child->SetFocusFromKbd(); - return TRUE; + return true; } node = node->GetNext(); } - return FALSE; + return false; }