Attempt to fix MSW Cancel-still-validates bug.

Fixes: lp:1805361
* https://bugs.launchpad.net/kicad/+bug/1805361
This commit is contained in:
Jeff Young 2018-11-27 17:08:11 +00:00
parent 8cf9ab5a4c
commit 72f17ad7f0
1 changed files with 16 additions and 8 deletions

View File

@ -92,6 +92,13 @@ void UNIT_BINDER::onSetFocus( wxFocusEvent& aEvent )
void UNIT_BINDER::onKillFocus( wxFocusEvent& aEvent ) void UNIT_BINDER::onKillFocus( wxFocusEvent& aEvent )
{ {
if( aEvent.GetWindow() && aEvent.GetWindow()->GetId() == wxID_CANCEL )
{
// Don't eval or validate when focus lost due to Cancel. While most platforms
// suppress KillFocus events after a Cancel, MSW (at least) does not.
}
else
{
auto textEntry = dynamic_cast<wxTextEntry*>( m_value ); auto textEntry = dynamic_cast<wxTextEntry*>( m_value );
if( m_allowEval && textEntry ) if( m_allowEval && textEntry )
@ -103,6 +110,7 @@ void UNIT_BINDER::onKillFocus( wxFocusEvent& aEvent )
} }
Validate( true ); Validate( true );
}
aEvent.Skip(); aEvent.Skip();
} }