diff --git a/common/scintilla_tricks.cpp b/common/scintilla_tricks.cpp index 8d1d632913..548b3e052c 100644 --- a/common/scintilla_tricks.cpp +++ b/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? diff --git a/eeschema/dialogs/dialog_edit_label.cpp b/eeschema/dialogs/dialog_edit_label.cpp index 451ab91957..68251508b0 100644 --- a/eeschema/dialogs/dialog_edit_label.cpp +++ b/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() ) { diff --git a/eeschema/dialogs/dialog_edit_one_field.cpp b/eeschema/dialogs/dialog_edit_one_field.cpp index 5f5520c0d7..07e9fb5673 100644 --- a/eeschema/dialogs/dialog_edit_one_field.cpp +++ b/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(); diff --git a/pcbnew/dialogs/panel_setup_rules.cpp b/pcbnew/dialogs/panel_setup_rules.cpp index ba58d67939..2c8a07c35b 100644 --- a/pcbnew/dialogs/panel_setup_rules.cpp +++ b/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 == '\\' ) {