aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorjohnsonj <devnull@localhost>2015-07-28 18:44:13 +1000
committerjohnsonj <devnull@localhost>2015-07-28 18:44:13 +1000
commit9c027d7cc95178255ef39bd09dc47457864ee4a6 (patch)
treebe5264c3ae2e353833d976c6795b5932792c3da4
parent8b9c9c1375d6a65b8dca0562b00079e15fd90bb4 (diff)
downloadscintilla-mirror-9c027d7cc95178255ef39bd09dc47457864ee4a6.tar.gz
Avoid candidate box randomly popping up away from edit pane with (especially
Japanese) IME input.
-rw-r--r--gtk/ScintillaGTK.cxx1
-rw-r--r--qt/ScintillaEditBase/ScintillaEditBase.cpp1
-rw-r--r--win32/ScintillaWin.cxx1
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);