Apply CharHook uniformly as other platforms appear to have issues.

Fixes: lp:1806124
* https://bugs.launchpad.net/kicad/+bug/1806124
This commit is contained in:
Jeff Young 2018-12-01 11:56:59 +00:00
parent 61b749f0b2
commit 45ee95f5e2
1 changed files with 10 additions and 5 deletions

View File

@ -138,7 +138,7 @@ DIALOG_TEXT_PROPERTIES::DIALOG_TEXT_PROPERTIES( PCB_BASE_EDIT_FRAME* aParent, BO
// wxTextCtrls fail to generate wxEVT_CHAR events when the wxTE_MULTILINE flag is set, // wxTextCtrls fail to generate wxEVT_CHAR events when the wxTE_MULTILINE flag is set,
// so we have to listen to wxEVT_CHAR_HOOK events instead. // so we have to listen to wxEVT_CHAR_HOOK events instead.
m_MultiLineText->Connect( wxEVT_CHAR_HOOK, wxKeyEventHandler( DIALOG_TEXT_PROPERTIES::OnCharHook ), NULL, this ); Connect( wxEVT_CHAR_HOOK, wxKeyEventHandler( DIALOG_TEXT_PROPERTIES::OnCharHook ), NULL, this );
FinishDialogSettings(); FinishDialogSettings();
} }
@ -146,7 +146,7 @@ DIALOG_TEXT_PROPERTIES::DIALOG_TEXT_PROPERTIES( PCB_BASE_EDIT_FRAME* aParent, BO
DIALOG_TEXT_PROPERTIES::~DIALOG_TEXT_PROPERTIES() DIALOG_TEXT_PROPERTIES::~DIALOG_TEXT_PROPERTIES()
{ {
m_MultiLineText->Disconnect( wxEVT_CHAR_HOOK, wxKeyEventHandler( DIALOG_TEXT_PROPERTIES::OnCharHook ), NULL, this ); Disconnect( wxEVT_CHAR_HOOK, wxKeyEventHandler( DIALOG_TEXT_PROPERTIES::OnCharHook ), NULL, this );
} }
@ -183,10 +183,15 @@ void DIALOG_TEXT_PROPERTIES::OnCharHook( wxKeyEvent& aEvent )
NavigateIn( flags ); NavigateIn( flags );
} }
else if( aEvent.GetKeyCode() == WXK_RETURN && aEvent.ShiftDown() ) else if( aEvent.GetKeyCode() == WXK_RETURN )
{ {
TransferDataFromWindow(); if( FindFocus() == m_MultiLineText && !aEvent.ShiftDown() )
EndModal( wxID_OK ); aEvent.Skip();
else
{
TransferDataFromWindow();
EndModal( wxID_OK );
}
} }
else else
{ {