diff options
author | Bartlomiej Moskal <[email protected]> | 2025-06-03 13:00:26 +0200 |
---|---|---|
committer | Bartlomiej Moskal <[email protected]> | 2025-06-04 19:24:38 +0000 |
commit | a4850d0e0f42229afe2af10cee5794d0de70416c (patch) | |
tree | 944319681f874d6387879e4a61e91a2025ccf0a5 | |
parent | 86d843be47d04ca2d5c2ab1f052cd2a822a2979c (diff) |
beginBatchEdit() means the start of a batch of related input operations
from the Input Method Editor. We should not restart input until
endBatchEdit() is called. Restarting it before may cause issue with
inactive InputConnection.
This commit fixes an issue where calling
InputMethodManager.restartInput() during a batch edit (e.g., between
beginBatchEdit and endBatchEdit).
Pick-to: 6.10 6.9 6.8
Fixes: QTBUG-136229
Change-Id: I408e6dfd8a91f2d0f1dd8c18dc0dcc2d13cc3e38
Reviewed-by: Assam Boudjelthia <[email protected]>
-rw-r--r-- | src/android/jar/src/org/qtproject/qt/android/QtInputConnection.java | 11 |
1 files changed, 9 insertions, 2 deletions
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 4327ff0e36f..e89882372d5 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtInputConnection.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtInputConnection.java @@ -66,6 +66,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 { @@ -122,7 +123,7 @@ class QtInputConnection extends BaseInputConnection void restartImmInput() { - if (QtNativeInputConnection.fullscreenMode()) { + if (QtNativeInputConnection.fullscreenMode() && !m_duringBatchEdit) { if (m_imm != null) m_imm.restartInput(m_view); } @@ -133,6 +134,7 @@ class QtInputConnection extends BaseInputConnection public boolean beginBatchEdit() { setClosing(false); + m_duringBatchEdit = true; return QtNativeInputConnection.beginBatchEdit(); } @@ -149,7 +151,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 |