Fixed problem with kill focus event getting sent to control

that is getting the focus.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@18947 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2003-01-26 19:04:10 +00:00
parent f2dec5b10d
commit eed1be652a
2 changed files with 34 additions and 16 deletions

View File

@@ -242,10 +242,18 @@ void wxWindowMac::SetFocus()
control->MacRedrawControl() ;
}
#endif
// Without testing the window id, for some reason
// a kill focus event can still be sent to
// the control just being focussed.
int thisId = this->m_windowId;
int gFocusWindowId = gFocusWindow->m_windowId;
if (gFocusWindowId != thisId)
{
wxFocusEvent event(wxEVT_KILL_FOCUS, gFocusWindow->m_windowId);
event.SetEventObject(gFocusWindow);
gFocusWindow->GetEventHandler()->ProcessEvent(event) ;
}
}
gFocusWindow = this ;
{
#if wxUSE_CARET
@@ -1765,6 +1773,7 @@ void wxWindowMac::MacRedraw( WXHRGN updatergnr , long time, bool erase)
if ( erase && !EmptyRgn(ownUpdateRgn) )
{
wxWindowDC dc(this);
if (!EmptyRgn(ownUpdateRgn))
dc.SetClippingRegion(wxRegion(ownUpdateRgn));
wxEraseEvent eevent( GetId(), &dc );
eevent.SetEventObject( this );

View File

@@ -242,10 +242,18 @@ void wxWindowMac::SetFocus()
control->MacRedrawControl() ;
}
#endif
// Without testing the window id, for some reason
// a kill focus event can still be sent to
// the control just being focussed.
int thisId = this->m_windowId;
int gFocusWindowId = gFocusWindow->m_windowId;
if (gFocusWindowId != thisId)
{
wxFocusEvent event(wxEVT_KILL_FOCUS, gFocusWindow->m_windowId);
event.SetEventObject(gFocusWindow);
gFocusWindow->GetEventHandler()->ProcessEvent(event) ;
}
}
gFocusWindow = this ;
{
#if wxUSE_CARET
@@ -1765,6 +1773,7 @@ void wxWindowMac::MacRedraw( WXHRGN updatergnr , long time, bool erase)
if ( erase && !EmptyRgn(ownUpdateRgn) )
{
wxWindowDC dc(this);
if (!EmptyRgn(ownUpdateRgn))
dc.SetClippingRegion(wxRegion(ownUpdateRgn));
wxEraseEvent eevent( GetId(), &dc );
eevent.SetEventObject( this );