Browse Source

Fix crash bug in unicode chars with Scintilla.

pull/16/head
Jeff Young 6 years ago
parent
commit
fe4fd19c66
  1. 6
      common/scintilla_tricks.cpp
  2. 2
      eeschema/dialogs/dialog_edit_label.cpp
  3. 2
      eeschema/dialogs/dialog_edit_one_field.cpp
  4. 4
      pcbnew/dialogs/panel_setup_rules.cpp

6
common/scintilla_tricks.cpp

@ -116,6 +116,10 @@ void SCINTILLA_TRICKS::onCharHook( wxKeyEvent& aEvent )
{
m_te->Paste();
}
else if( aEvent.GetUnicodeKey() > 60 )
{
aEvent.Skip(); // This crashes the Scintilla engine....
}
else
{
aEvent.Skip();
@ -127,7 +131,7 @@ void SCINTILLA_TRICKS::onScintillaUpdateUI( wxStyledTextEvent& aEvent )
{
auto isBrace = [this]( int c ) -> bool
{
return m_braces.Find( (char) c ) >= 0;
return m_braces.Find( (wxChar) c ) >= 0;
};
// Has the caret changed position?

2
eeschema/dialogs/dialog_edit_label.cpp

@ -69,7 +69,7 @@ DIALOG_LABEL_EDITOR::DIALOG_LABEL_EDITOR( SCH_EDIT_FRAME* aParent, SCH_TEXT* aTe
m_valueMultiLine->SetEOLMode( wxSTC_EOL_LF );
m_scintillaTricks = new SCINTILLA_TRICKS( m_valueMultiLine, "()" );
m_scintillaTricks = new SCINTILLA_TRICKS( m_valueMultiLine, wxT( "()" ) );
if( m_CurrentText->IsMultilineAllowed() )
{

2
eeschema/dialogs/dialog_edit_one_field.cpp

@ -58,7 +58,7 @@ DIALOG_EDIT_ONE_FIELD::DIALOG_EDIT_ONE_FIELD( SCH_BASE_FRAME* aParent, const wxS
m_fieldId = VALUE;
m_isPower = false;
m_scintillaTricks = new SCINTILLA_TRICKS( m_StyledTextCtrl, "{}" );
m_scintillaTricks = new SCINTILLA_TRICKS( m_StyledTextCtrl, wxT( "{}" ) );
m_text = aTextItem->GetText();
m_isItalic = aTextItem->IsItalic();

4
pcbnew/dialogs/panel_setup_rules.cpp

@ -35,7 +35,7 @@ PANEL_SETUP_RULES::PANEL_SETUP_RULES( PAGED_DIALOG* aParent, PCB_EDIT_FRAME* aFr
m_frame( aFrame ),
m_scintillaTricks( nullptr )
{
m_scintillaTricks = new SCINTILLA_TRICKS( m_textEditor, "{}" );
m_scintillaTricks = new SCINTILLA_TRICKS( m_textEditor, wxT( "{}" ) );
int size = wxNORMAL_FONT->GetPointSize();
wxFont fixedFont( size, wxFONTFAMILY_TELETYPE, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL );
@ -76,7 +76,7 @@ void PANEL_SETUP_RULES::onScintillaCharAdded( wxStyledTextEvent &aEvent )
for( ; i < currentPos; ++i )
{
char c = (char) m_textEditor->GetCharAt( i );
wxChar c = m_textEditor->GetCharAt( i );
if( c == '\\' )
{

Loading…
Cancel
Save