From 483bbe47309348d096388379c1ad03e2082f647f Mon Sep 17 00:00:00 2001 From: johnsonj Date: Thu, 14 Apr 2016 23:21:56 +1000 Subject: Simplified IME caret positioning. --- win32/ScintillaWin.cxx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'win32') diff --git a/win32/ScintillaWin.cxx b/win32/ScintillaWin.cxx index 2e9cce34a..3c7cd45be 100644 --- a/win32/ScintillaWin.cxx +++ b/win32/ScintillaWin.cxx @@ -1093,10 +1093,10 @@ sptr_t ScintillaWin::HandleCompositionInline(uptr_t, sptr_t lParam) { recordingMacro = tmpRecordingMacro; // Move IME caret from current last position to imeCaretPos. - int toImeStart = static_cast(StringEncode(wcs, codePage).size()); - std::string imeCaret(StringEncode(wcs.substr(0, imc.GetImeCaretPos()), codePage)); - int toImeCaret = static_cast(imeCaret.size()); - MoveImeCarets(- toImeStart + toImeCaret); + int imeEndToImeCaretU16 = imc.GetImeCaretPos() - static_cast(wcs.size()); + int imeCaretPosDoc = pdoc->GetRelativePositionUTF16(CurrentPosition(), imeEndToImeCaretU16); + + MoveImeCarets(- CurrentPosition() + imeCaretPosDoc); if (KoreanIME()) { view.imeCaretBlockOverride = true; -- cgit v1.2.3