diff options
| author | johnsonj <devnull@localhost> | 2015-07-28 18:44:13 +1000 |
|---|---|---|
| committer | johnsonj <devnull@localhost> | 2015-07-28 18:44:13 +1000 |
| commit | 9c027d7cc95178255ef39bd09dc47457864ee4a6 (patch) | |
| tree | be5264c3ae2e353833d976c6795b5932792c3da4 | |
| parent | 8b9c9c1375d6a65b8dca0562b00079e15fd90bb4 (diff) | |
| download | scintilla-mirror-9c027d7cc95178255ef39bd09dc47457864ee4a6.tar.gz | |
Avoid candidate box randomly popping up away from edit pane with (especially
Japanese) IME input.
| -rw-r--r-- | gtk/ScintillaGTK.cxx | 1 | ||||
| -rw-r--r-- | qt/ScintillaEditBase/ScintillaEditBase.cpp | 1 | ||||
| -rw-r--r-- | win32/ScintillaWin.cxx | 1 |
3 files changed, 3 insertions, 0 deletions
diff --git a/gtk/ScintillaGTK.cxx b/gtk/ScintillaGTK.cxx index d08b944c8..c60554a23 100644 --- a/gtk/ScintillaGTK.cxx +++ b/gtk/ScintillaGTK.cxx @@ -2584,6 +2584,7 @@ void ScintillaGTK::PreeditChangedInlineThis() { MoveImeCarets( - (imeCharPos[preeditStr.uniStrLen]) + imeCharPos[preeditStr.cursor_pos]); } + EnsureCaretVisible(); SetCandidateWindowPos(); ShowCaretAtCurrentPosition(); } catch (...) { diff --git a/qt/ScintillaEditBase/ScintillaEditBase.cpp b/qt/ScintillaEditBase/ScintillaEditBase.cpp index a99e06d81..d462ddac7 100644 --- a/qt/ScintillaEditBase/ScintillaEditBase.cpp +++ b/qt/ScintillaEditBase/ScintillaEditBase.cpp @@ -568,6 +568,7 @@ void ScintillaEditBase::inputMethodEvent(QInputMethodEvent *event) // Set candidate box position for Qt::ImMicroFocus. preeditPos = sqt->CurrentPosition(); + sqt->EnsureCaretVisible(); updateMicroFocus(); } sqt->ShowCaretAtCurrentPosition(); diff --git a/win32/ScintillaWin.cxx b/win32/ScintillaWin.cxx index d25cd51d8..db1e2b4d9 100644 --- a/win32/ScintillaWin.cxx +++ b/win32/ScintillaWin.cxx @@ -1068,6 +1068,7 @@ sptr_t ScintillaWin::HandleCompositionInline(uptr_t, sptr_t lParam) { i += ucWidth; } } + EnsureCaretVisible(); SetCandidateWindowPos(); ShowCaretAtCurrentPosition(); ::ImmReleaseContext(MainHWND(), hIMC); |
