summaryrefslogtreecommitdiffstats
path: root/src/android/jar
diff options
context:
space:
mode:
authorPiotr Mikolajczyk <piotr.mikolajczyk@qt.io>2021-02-09 08:50:11 +0100
committerPiotr Mikolajczyk <piotr.mikolajczyk@qt.io>2021-03-10 13:11:33 +0100
commite6ca200a3a0aecc2313becf959c1be4fe18bdfa1 (patch)
tree8881fdfdbfe7005bb95e5e5b46dcd895a1dd6f07 /src/android/jar
parent7a4dd166e0b301d059f914a6cc5cc14d2dd40628 (diff)
Android: Fix constant resize of a large TextEdit on click
If there is a large (3/5 of the screen in portrait or 2/3 in landscape) TextEdit on the screen, and it gets focus on click, it will be shrank to fit the screen. Next click on this TextEdit will restore its normal height, the next will shrink. Pick-to: 5.15 Fixes: QTBUG-91056 Change-Id: I3dbf085cbfdc2739d537a304c16e28c58a6e01ce Reviewed-by: Rami Potinkara <rami.potinkara@qt.io> Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
Diffstat (limited to 'src/android/jar')
-rw-r--r--src/android/jar/src/org/qtproject/qt/android/QtNative.java14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/android/jar/src/org/qtproject/qt/android/QtNative.java b/src/android/jar/src/org/qtproject/qt/android/QtNative.java
index cb2a78b403..5aa3997f91 100644
--- a/src/android/jar/src/org/qtproject/qt/android/QtNative.java
+++ b/src/android/jar/src/org/qtproject/qt/android/QtNative.java
@@ -57,6 +57,7 @@ import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ApplicationInfo;
import android.content.UriPermission;
+import android.graphics.Rect;
import android.net.Uri;
import android.os.Build;
import android.os.Handler;
@@ -67,6 +68,7 @@ import android.content.ClipboardManager.OnPrimaryClipChangedListener;
import android.content.ClipData;
import android.os.ParcelFileDescriptor;
import android.util.Log;
+import android.util.DisplayMetrics;
import android.view.ContextMenu;
import android.view.KeyEvent;
import android.view.Menu;
@@ -116,6 +118,7 @@ public class QtNative
public static QtThread m_qtThread = new QtThread();
private static HashMap<String, Uri> m_cachedUris = new HashMap<String, Uri>();
private static ArrayList<String> m_knownDirs = new ArrayList<String>();
+ private static final int KEYBOARD_HEIGHT_THRESHOLD = 100;
private static final Runnable runPendingCppRunnablesRunnable = new Runnable() {
@Override
@@ -949,6 +952,17 @@ public class QtNative
});
}
+ public static boolean isSoftwareKeyboardVisible()
+ {
+ Activity activity = QtNative.activity();
+ Rect r = new Rect();
+ activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(r);
+ DisplayMetrics metrics = new DisplayMetrics();
+ activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
+ final int kbHeight = metrics.heightPixels - r.bottom;
+ return (kbHeight >= KEYBOARD_HEIGHT_THRESHOLD);
+ }
+
private static void notifyAccessibilityLocationChange()
{
runAction(new Runnable() {