aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--doc/ScintillaHistory.html1
-rw-r--r--win32/ScintillaWin.cxx7
2 files changed, 6 insertions, 2 deletions
diff --git a/doc/ScintillaHistory.html b/doc/ScintillaHistory.html
index 18d6dfe01..f75dfb496 100644
--- a/doc/ScintillaHistory.html
+++ b/doc/ScintillaHistory.html
@@ -570,6 +570,7 @@
On Win32, stop the IME candidate window moving unnecessarily and position it better.<br />
Stop candidate window overlapping composition text and taskbar.<br />
Position candidate window closer to composition text.<br />
+ Stop candidate window moving while typing.<br />
<a href="https://sourceforge.net/p/scintilla/bugs/2120/">Bug #2120</a>.
<a href="https://sourceforge.net/p/scintilla/feature-requests/1300/">Feature #1300</a>.
</li>
diff --git a/win32/ScintillaWin.cxx b/win32/ScintillaWin.cxx
index 55606fe07..e19dca8b5 100644
--- a/win32/ScintillaWin.cxx
+++ b/win32/ScintillaWin.cxx
@@ -1100,8 +1100,12 @@ sptr_t ScintillaWin::HandleCompositionInline(uptr_t, sptr_t lParam) {
return 0;
}
- if (initialCompose)
+ if (initialCompose) {
ClearBeforeTentativeStart();
+ }
+
+ // Set candidate window left aligned to beginning of preedit string.
+ SetCandidateWindowPos();
pdoc->TentativeStart(); // TentativeActive from now on.
std::vector<int> imeIndicator = MapImeIndicators(imc.GetImeAttributes());
@@ -1131,7 +1135,6 @@ sptr_t ScintillaWin::HandleCompositionInline(uptr_t, sptr_t lParam) {
AddWString(imc.GetCompositionString(GCS_RESULTSTR), CharacterSource::imeResult);
}
EnsureCaretVisible();
- SetCandidateWindowPos();
ShowCaretAtCurrentPosition();
return 0;
}