+ if ( win )
+ {
+ wxLogTrace(_T("focus"), _T("Set last focus to %s(%s)"),
+ win->GetClassInfo()->GetClassName(),
+ win->GetLabel().c_str());
+ }
+ else
+ {
+ wxLogTrace(_T("focus"), _T("No more last focus"));
+ }
+ }
+
+ // 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 )
+ {
+ wxChildFocusEvent eventFocus(m_winParent);
+ parent->GetEventHandler()->ProcessEvent(eventFocus);
+ }