From 2a15b94200abe8ee0df2dddc296f3dafd55655f8 Mon Sep 17 00:00:00 2001 From: mitchell Date: Thu, 11 Jul 2019 14:12:28 -0400 Subject: Backport: Bug [#2038]. Source of input reported in SCN_CHARADDED. This may be SC_CHARACTERSOURCE_DIRECT_INPUT, SC_CHARACTERSOURCE_TENTATIVE_INPUT, or SC_CHARACTERSOURCE_IME_RESULT. Backport of changeset 7613:4cfac35c71bd. --- qt/ScintillaEditBase/ScintillaEditBase.cpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'qt/ScintillaEditBase/ScintillaEditBase.cpp') diff --git a/qt/ScintillaEditBase/ScintillaEditBase.cpp b/qt/ScintillaEditBase/ScintillaEditBase.cpp index 5a80b1ddd..ccc20b18d 100644 --- a/qt/ScintillaEditBase/ScintillaEditBase.cpp +++ b/qt/ScintillaEditBase/ScintillaEditBase.cpp @@ -259,7 +259,7 @@ void ScintillaEditBase::keyPressEvent(QKeyEvent *event) QString text = event->text(); if (input && !text.isEmpty() && text[0].isPrint()) { QByteArray utext = sqt->BytesForDocument(text); - sqt->InsertCharacter(utext.data(), utext.size()); + sqt->InsertCharacter(utext.data(), utext.size(), EditModel::CharacterSource::directInput); } else { event->ignore(); } @@ -549,7 +549,7 @@ void ScintillaEditBase::inputMethodEvent(QInputMethodEvent *event) const QString oneCharUTF16 = commitStr.mid(i, ucWidth); const QByteArray oneChar = sqt->BytesForDocument(oneCharUTF16); - sqt->InsertCharacter(oneChar.data(), oneChar.length()); + sqt->InsertCharacter(oneChar.data(), oneChar.length(), EditModel::CharacterSource::directInput); i += ucWidth; } @@ -567,20 +567,17 @@ void ScintillaEditBase::inputMethodEvent(QInputMethodEvent *event) std::vector imeIndicator = MapImeIndicators(event); - const bool recording = sqt->recordingMacro; - sqt->recordingMacro = false; for (unsigned int i = 0; i < preeditStrLen;) { const unsigned int ucWidth = preeditStr.at(i).isHighSurrogate() ? 2 : 1; const QString oneCharUTF16 = preeditStr.mid(i, ucWidth); const QByteArray oneChar = sqt->BytesForDocument(oneCharUTF16); const int oneCharLen = oneChar.length(); - sqt->InsertCharacter(oneChar.data(), oneCharLen); + sqt->InsertCharacter(oneChar.data(), oneCharLen, EditModel::CharacterSource::tentativeInput); DrawImeIndicator(imeIndicator[i], oneCharLen); i += ucWidth; } - sqt->recordingMacro = recording; // Move IME carets. int imeCaretPos = GetImeCaretPos(event); -- cgit v1.2.3