From dac390e90b6595a876f1099f7e00939386e911a8 Mon Sep 17 00:00:00 2001 From: David Surovell Date: Fri, 9 Dec 2005 16:18:01 +0000 Subject: [PATCH] cleanup in preparation for patch 1376506 git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36352 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/mac/carbon/window.cpp | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/src/mac/carbon/window.cpp b/src/mac/carbon/window.cpp index 55d8ff2c36..28ee3001d4 100644 --- a/src/mac/carbon/window.cpp +++ b/src/mac/carbon/window.cpp @@ -2553,25 +2553,38 @@ void wxWindowMac::OnSetFocus(wxFocusEvent& event) // panel wants to track the window which was the last to have focus in it, // so we want to set ourselves as the window which last had focus // - // notice that it's also important to do it upwards the tree becaus + // notice that it's also important to do it upwards the tree because // otherwise when the top level panel gets focus, it won't set it back to // us, but to some other sibling - // CS:don't know if this is still needed: + // CS: don't know if this is still needed: //wxChildFocusEvent eventFocus(this); //(void)GetEventHandler()->ProcessEvent(eventFocus); + bool bIsFocusEvent = (event.GetEventType() == wxEVT_SET_FOCUS); + + // enable this for patch 1376506 +#if 0 + if ( bIsFocusEvent ) + SetUserFocusWindow( GetControlOwner( GetPeer()->GetControlRef() ) ); + else + SetUserFocusWindow( kUserFocusAuto ); +#endif + if ( MacGetTopLevelWindow() && m_peer->NeedsFocusRect() ) { - #if !wxMAC_USE_CORE_GRAPHICS +#if wxMAC_USE_CORE_GRAPHICS + GetParent()->Refresh() ; +#else wxMacWindowStateSaver sv( this ) ; Rect rect ; + m_peer->GetRect( &rect ) ; // auf den umgebenden Rahmen zurĀŸck InsetRect( &rect, -1 , -1 ) ; wxTopLevelWindowMac* top = MacGetTopLevelWindow(); - if (top ) + if ( top ) { wxPoint pt(0,0) ; wxMacControl::Convert( &pt , GetParent()->m_peer , top->m_peer ) ; @@ -2581,19 +2594,14 @@ void wxWindowMac::OnSetFocus(wxFocusEvent& event) rect.bottom += pt.y ; } - if ( event.GetEventType() == wxEVT_SET_FOCUS ) - DrawThemeFocusRect( &rect , true ) ; - else + DrawThemeFocusRect( &rect , bIsFocusEvent ) ; + if ( !bIsFocusEvent ) { - DrawThemeFocusRect( &rect , false ) ; - // as this erases part of the frame we have to redraw borders // and because our z-ordering is not always correct (staticboxes) // we have to invalidate things, we cannot simple redraw MacInvalidateBorders() ; } -#else - GetParent()->Refresh() ; #endif } -- 2.45.2