diff options
| author | Zufu Liu <unknown> | 2019-06-30 08:34:46 +1000 | 
|---|---|---|
| committer | Zufu Liu <unknown> | 2019-06-30 08:34:46 +1000 | 
| commit | d7e2afd1f88bf735b010461ff505470bfa468547 (patch) | |
| tree | 0305fc8fd126909438c6da42cf90d53a3201b8c2 /qt/ScintillaEditBase/ScintillaEditBase.cpp | |
| parent | 24bff87107d89a09e724993e053e7151945596e8 (diff) | |
| download | scintilla-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.cpp | 9 | 
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);  | 
