From d7e2afd1f88bf735b010461ff505470bfa468547 Mon Sep 17 00:00:00 2001 From: Zufu Liu Date: Sun, 30 Jun 2019 08:34:46 +1000 Subject: 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. --- gtk/ScintillaGTK.cxx | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'gtk') diff --git a/gtk/ScintillaGTK.cxx b/gtk/ScintillaGTK.cxx index 3b1972880..5da17aacf 100644 --- a/gtk/ScintillaGTK.cxx +++ b/gtk/ScintillaGTK.cxx @@ -2351,7 +2351,7 @@ void ScintillaGTK::CommitThis(char *commitStr) { if (!IsUnicodeMode()) docChar = ConvertText(u8Char, u8CharLen, charSetSource, "UTF-8", true); - InsertCharacter(docChar); + InsertCharacter(docChar, CharacterSource::directInput); } g_free(uniStr); ShowCaretAtCurrentPosition(); @@ -2403,8 +2403,6 @@ void ScintillaGTK::PreeditChangedInlineThis() { std::vector indicator = MapImeIndicators(preeditStr.attrs, preeditStr.str); - const bool tmpRecordingMacro = recordingMacro; - recordingMacro = false; for (glong i = 0; i < preeditStr.uniStrLen; i++) { gchar u8Char[UTF8MaxBytes+2] = {0}; const gint u8CharLen = g_unichar_to_utf8(preeditStr.uniStr[i], u8Char); @@ -2412,11 +2410,10 @@ void ScintillaGTK::PreeditChangedInlineThis() { if (!IsUnicodeMode()) docChar = ConvertText(u8Char, u8CharLen, charSetSource, "UTF-8", true); - InsertCharacter(docChar); + InsertCharacter(docChar, CharacterSource::tentativeInput); DrawImeIndicator(indicator[i], docChar.size()); } - recordingMacro = tmpRecordingMacro; // Move caret to ime cursor position. const int imeEndToImeCaretU32 = preeditStr.cursor_pos - preeditStr.uniStrLen; -- cgit v1.2.3