aboutsummaryrefslogtreecommitdiffhomepage
path: root/qt/ScintillaEditBase/ScintillaEditBase.cpp
diff options
context:
space:
mode:
authorZufu Liu <unknown>2019-06-30 08:34:46 +1000
committerZufu Liu <unknown>2019-06-30 08:34:46 +1000
commitd7e2afd1f88bf735b010461ff505470bfa468547 (patch)
tree0305fc8fd126909438c6da42cf90d53a3201b8c2 /qt/ScintillaEditBase/ScintillaEditBase.cpp
parent24bff87107d89a09e724993e053e7151945596e8 (diff)
downloadscintilla-mirror-d7e2afd1f88bf735b010461ff505470bfa468547.tar.gz
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.
Diffstat (limited to 'qt/ScintillaEditBase/ScintillaEditBase.cpp')
-rw-r--r--qt/ScintillaEditBase/ScintillaEditBase.cpp9
1 files changed, 3 insertions, 6 deletions
diff --git a/qt/ScintillaEditBase/ScintillaEditBase.cpp b/qt/ScintillaEditBase/ScintillaEditBase.cpp
index 261dfa520..d822c84d4 100644
--- a/qt/ScintillaEditBase/ScintillaEditBase.cpp
+++ b/qt/ScintillaEditBase/ScintillaEditBase.cpp
@@ -258,7 +258,7 @@ void ScintillaEditBase::keyPressEvent(QKeyEvent *event)
QString text = event->text();
if (input && !text.isEmpty() && text[0].isPrint()) {
QByteArray utext = sqt->BytesForDocument(text);
- sqt->InsertCharacter(std::string_view(utext.data(), utext.size()));
+ sqt->InsertCharacter(std::string_view(utext.data(), utext.size()), EditModel::CharacterSource::directInput);
} else {
event->ignore();
}
@@ -548,7 +548,7 @@ void ScintillaEditBase::inputMethodEvent(QInputMethodEvent *event)
const QString oneCharUTF16 = commitStr.mid(i, ucWidth);
const QByteArray oneChar = sqt->BytesForDocument(oneCharUTF16);
- sqt->InsertCharacter(std::string_view(oneChar.data(), oneChar.length()));
+ sqt->InsertCharacter(std::string_view(oneChar.data(), oneChar.length()), EditModel::CharacterSource::directInput);
i += ucWidth;
}
@@ -566,20 +566,17 @@ void ScintillaEditBase::inputMethodEvent(QInputMethodEvent *event)
std::vector<int> 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(std::string_view(oneChar.data(), oneCharLen));
+ sqt->InsertCharacter(std::string_view(oneChar.data(), oneCharLen), EditModel::CharacterSource::tentativeInput);
DrawImeIndicator(imeIndicator[i], oneCharLen);
i += ucWidth;
}
- sqt->recordingMacro = recording;
// Move IME carets.
int imeCaretPos = GetImeCaretPos(event);