diff --git a/src/android/jar/src/org/qtproject/qt/android/QtInputConnection.java b/src/android/jar/src/org/qtproject/qt/android/QtInputConnection.java index aee234c4675..d6c6ecadad4 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtInputConnection.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtInputConnection.java @@ -70,6 +70,7 @@ class QtInputConnection extends BaseInputConnection private static final String QtTAG = "QtInputConnection"; + private boolean m_duringBatchEdit = false; private final QtInputConnectionListener m_qtInputConnectionListener; class HideKeyboardRunnable implements Runnable { @@ -126,7 +127,7 @@ class QtInputConnection extends BaseInputConnection void restartImmInput() { - if (QtNativeInputConnection.fullscreenMode()) { + if (QtNativeInputConnection.fullscreenMode() && !m_duringBatchEdit) { if (m_imm != null) m_imm.restartInput(m_view); } @@ -137,6 +138,7 @@ class QtInputConnection extends BaseInputConnection public boolean beginBatchEdit() { setClosing(false); + m_duringBatchEdit = true; return QtNativeInputConnection.beginBatchEdit(); } @@ -153,7 +155,12 @@ class QtInputConnection extends BaseInputConnection public boolean endBatchEdit() { setClosing(false); - return QtNativeInputConnection.endBatchEdit(); + boolean ret = QtNativeInputConnection.endBatchEdit(); + if (m_duringBatchEdit) { + m_duringBatchEdit = false; + restartImmInput(); + } + return ret; } @Override