From fe32ed66534ba3cca8112442f1fa37bdff73696e Mon Sep 17 00:00:00 2001 From: Bartlomiej Moskal Date: Mon, 11 Jan 2021 11:35:47 +0100 Subject: Android: Finish composing text before Key handling If the sendKeyEvent was invoked, it means that the button not related with composing text was used. In such case composing text (if it exists) should be immediately finished. Fixes: QTBUG-85715 Change-Id: Ifbca067805b8d20f6a90f95b27210595abed964a Reviewed-by: Rami Potinkara Reviewed-by: Assam Boudjelthia (cherry picked from commit 0d5b43bed4d75ce4d1f1c5a7b953288f5570350d) Reviewed-by: Qt Cherry-pick Bot --- .../jar/src/org/qtproject/qt/android/QtInputConnection.java | 11 +++++++++++ 1 file changed, 11 insertions(+) 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 dab8ebf324..e90de9e24d 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtInputConnection.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtInputConnection.java @@ -46,6 +46,7 @@ import android.view.inputmethod.CompletionInfo; import android.view.inputmethod.ExtractedText; import android.view.inputmethod.ExtractedTextRequest; import android.view.inputmethod.InputMethodManager; +import android.view.KeyEvent; import android.graphics.Rect; import android.app.Activity; import android.util.DisplayMetrics; @@ -249,6 +250,16 @@ public class QtInputConnection extends BaseInputConnection return super.performContextMenuAction(id); } + @Override + public boolean sendKeyEvent(KeyEvent event) + { + // QTBUG-85715 + // If the sendKeyEvent was invoked, it means that the button not related with composingText was used + // In such case composing text (if it exists) should be finished immediately + finishComposingText(); + return super.sendKeyEvent(event); + } + @Override public boolean setComposingText(CharSequence text, int newCursorPosition) { -- cgit v1.2.3