diff options
| author | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2024-07-04 12:02:45 +0200 |
|---|---|---|
| committer | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2024-08-08 01:48:35 +0200 |
| commit | eea00824bdbc6740261d2b78821e31c1f21c9c0c (patch) | |
| tree | dbacd1ccaf0c453425feca15fb60b0fdd28df566 /src | |
| parent | 7150c79d0ee10d6aca330e6a0862b0fbfec071fc (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.java | 11 | ||||
| -rw-r--r-- | src/plugins/platforms/android/qandroidplatformwindow.cpp | 3 |
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()) |
