summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTor Arne Vestbø <tor.arne.vestbo@qt.io>2024-07-04 12:02:45 +0200
committerTor Arne Vestbø <tor.arne.vestbo@qt.io>2024-08-08 01:48:35 +0200
commiteea00824bdbc6740261d2b78821e31c1f21c9c0c (patch)
treedbacd1ccaf0c453425feca15fb60b0fdd28df566 /src
parent7150c79d0ee10d6aca330e6a0862b0fbfec071fc (diff)
Android: Don't add QtEditText to foreign windows
We don't handle input on behalf of these windows, so we don't need a QtEditText for them. Any Qt managed child QWindow added to a foreign window will get its own QtEditText as normal. Pick-to: 6.8 Change-Id: I32daa83f22487aadca7509379595b6c82b29ea4a Reviewed-by: Tinja Paavoseppä <tinja.paavoseppa@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/android/jar/src/org/qtproject/qt/android/QtWindow.java11
-rw-r--r--src/plugins/platforms/android/qandroidplatformwindow.cpp3
2 files changed, 10 insertions, 4 deletions
diff --git a/src/android/jar/src/org/qtproject/qt/android/QtWindow.java b/src/android/jar/src/org/qtproject/qt/android/QtWindow.java
index 3bdbc592b86..b690f591b35 100644
--- a/src/android/jar/src/org/qtproject/qt/android/QtWindow.java
+++ b/src/android/jar/src/org/qtproject/qt/android/QtWindow.java
@@ -24,17 +24,22 @@ class QtWindow extends QtLayout implements QtSurfaceInterface {
private static native void setSurface(int windowId, Surface surface);
static native void windowFocusChanged(boolean hasFocus, int id);
- QtWindow(Context context, QtWindow parentWindow,
+ QtWindow(Context context, boolean isForeignWindow, QtWindow parentWindow,
QtInputConnection.QtInputConnectionListener listener)
{
super(context);
setId(View.generateViewId());
- m_editText = new QtEditText(context, listener);
m_inputConnectionListener = listener;
setParent(parentWindow);
setFocusableInTouchMode(true);
- addView(m_editText, new QtLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
+
+ if (!isForeignWindow) {
+ m_editText = new QtEditText(context, listener);
+ addView(m_editText, new QtLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT));
+ } else {
+ m_editText = null;
+ }
QtNative.runAction(() -> {
m_gestureDetector =
diff --git a/src/plugins/platforms/android/qandroidplatformwindow.cpp b/src/plugins/platforms/android/qandroidplatformwindow.cpp
index f5bb5117c30..8f68d04849a 100644
--- a/src/plugins/platforms/android/qandroidplatformwindow.cpp
+++ b/src/plugins/platforms/android/qandroidplatformwindow.cpp
@@ -72,7 +72,8 @@ void QAndroidPlatformWindow::initialize()
"getInputConnectionListener");
m_nativeQtWindow = QJniObject::construct<QtJniTypes::QtWindow>(
- QNativeInterface::QAndroidApplication::context(), m_nativeParentQtWindow, listener);
+ QNativeInterface::QAndroidApplication::context(),
+ isForeignWindow(), m_nativeParentQtWindow, listener);
m_nativeViewId = m_nativeQtWindow.callMethod<jint>("getId");
if (window->isTopLevel())