git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36352
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
// 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
//
// 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
// 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);
//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 ( MacGetTopLevelWindow() && m_peer->NeedsFocusRect() )
{
- #if !wxMAC_USE_CORE_GRAPHICS
+#if wxMAC_USE_CORE_GRAPHICS
+ GetParent()->Refresh() ;
+#else
wxMacWindowStateSaver sv( this ) ;
Rect rect ;
wxMacWindowStateSaver sv( this ) ;
Rect rect ;
m_peer->GetRect( &rect ) ;
// auf den umgebenden Rahmen zur\9fck
InsetRect( &rect, -1 , -1 ) ;
wxTopLevelWindowMac* top = MacGetTopLevelWindow();
m_peer->GetRect( &rect ) ;
// auf den umgebenden Rahmen zur\9fck
InsetRect( &rect, -1 , -1 ) ;
wxTopLevelWindowMac* top = MacGetTopLevelWindow();
{
wxPoint pt(0,0) ;
wxMacControl::Convert( &pt , GetParent()->m_peer , top->m_peer ) ;
{
wxPoint pt(0,0) ;
wxMacControl::Convert( &pt , GetParent()->m_peer , top->m_peer ) ;
- 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() ;
}
// 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() ;