diff options
| author | johnsonj <unknown> | 2016-04-14 23:21:56 +1000 |
|---|---|---|
| committer | johnsonj <unknown> | 2016-04-14 23:21:56 +1000 |
| commit | 483bbe47309348d096388379c1ad03e2082f647f (patch) | |
| tree | 262eb1745b5b08c52a2664c2e34756b283826140 /win32/ScintillaWin.cxx | |
| parent | 2af8e440eb93ba6e03de7b495bfce70016ed5868 (diff) | |
| download | scintilla-mirror-483bbe47309348d096388379c1ad03e2082f647f.tar.gz | |
Simplified IME caret positioning.
Diffstat (limited to 'win32/ScintillaWin.cxx')
| -rw-r--r-- | win32/ScintillaWin.cxx | 8 |
1 files changed, 4 insertions, 4 deletions
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<unsigned int>(StringEncode(wcs, codePage).size()); - std::string imeCaret(StringEncode(wcs.substr(0, imc.GetImeCaretPos()), codePage)); - int toImeCaret = static_cast<unsigned int>(imeCaret.size()); - MoveImeCarets(- toImeStart + toImeCaret); + int imeEndToImeCaretU16 = imc.GetImeCaretPos() - static_cast<unsigned int>(wcs.size()); + int imeCaretPosDoc = pdoc->GetRelativePositionUTF16(CurrentPosition(), imeEndToImeCaretU16); + + MoveImeCarets(- CurrentPosition() + imeCaretPosDoc); if (KoreanIME()) { view.imeCaretBlockOverride = true; |
