From 6b6bd02c07f0d495e224cdb3fa0bc25dc7b1d868 Mon Sep 17 00:00:00 2001 From: =?utf8?q?V=C3=A1clav=20Slav=C3=ADk?= Date: Wed, 13 Jun 2007 15:35:57 +0000 Subject: [PATCH] don't propagate wxChildFocusEvent outside of wxTLWs git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46451 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/common/containr.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/common/containr.cpp b/src/common/containr.cpp index bbc5d48b61..a7de0bd423 100644 --- a/src/common/containr.cpp +++ b/src/common/containr.cpp @@ -141,12 +141,16 @@ void wxControlContainer::SetLastFocus(wxWindow *win) } // propagate the last focus upwards so that our parent can set focus back - // to us if it loses it now and regains later - wxWindow *parent = m_winParent->GetParent(); - if ( parent ) + // to us if it loses it now and regains later; do *not* do this if we are + // a toplevel window (e.g. wxDialog) that has another frame as its parent + if ( !m_winParent->IsTopLevel() ) { - wxChildFocusEvent eventFocus(m_winParent); - parent->GetEventHandler()->ProcessEvent(eventFocus); + wxWindow *parent = m_winParent->GetParent(); + if ( parent ) + { + wxChildFocusEvent eventFocus(m_winParent); + parent->GetEventHandler()->ProcessEvent(eventFocus); + } } } -- 2.45.2