From a7407834c46165658c54a11ba91d4c173ceab1e5 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sat, 31 May 2003 17:25:07 +0000 Subject: [PATCH] clicking on a panel without children should give it the focus (closes 215436) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@20781 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/common/containr.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/common/containr.cpp b/src/common/containr.cpp index 5f251fda7b..6262adfd24 100644 --- a/src/common/containr.cpp +++ b/src/common/containr.cpp @@ -51,10 +51,16 @@ wxControlContainer::wxControlContainer(wxWindow *winParent) bool wxControlContainer::AcceptsFocus() const { - // We can accept focus only when at last one child will accept focus + // if we're not shown or disabled, we can't accept focus if ( m_winParent->IsShown() && m_winParent->IsEnabled() ) { + // otherwise we can accept focus either if we have no children at all + // (in this case we're probably not used as a container) or only when + // at least one child will accept focus wxWindowList::Node *node = m_winParent->GetChildren().GetFirst(); + if ( !node ) + return TRUE; + while ( node ) { wxWindow *child = node->GetData(); @@ -398,7 +404,7 @@ bool wxSetFocusToChild(wxWindow *win, wxWindow **childLastFocused) _T("SetFocusToChild() => first child (0x%08lx)."), (unsigned long)child->GetHandle()); - *childLastFocused = child; // should be redundant, but it is not + *childLastFocused = child; child->SetFocusFromKbd(); return TRUE; }