diff options
Diffstat (limited to 'src/plugins/platforms/android/qandroidplatformwindow.cpp')
-rw-r--r-- | src/plugins/platforms/android/qandroidplatformwindow.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/plugins/platforms/android/qandroidplatformwindow.cpp b/src/plugins/platforms/android/qandroidplatformwindow.cpp index 0756fb115f..8196809772 100644 --- a/src/plugins/platforms/android/qandroidplatformwindow.cpp +++ b/src/plugins/platforms/android/qandroidplatformwindow.cpp @@ -45,6 +45,9 @@ QAndroidPlatformWindow::QAndroidPlatformWindow(QWindow *window) setGeometry(finalNativeGeometry); } + if (isEmbeddingContainer()) + return; + if (parent()) m_nativeParentQtWindow = static_cast<QAndroidPlatformWindow*>(parent())->nativeWindow(); @@ -306,6 +309,13 @@ bool QAndroidPlatformWindow::blockedByModal() const return modalWindow && modalWindow != window(); } +bool QAndroidPlatformWindow::isEmbeddingContainer() const +{ + // Returns true if the window is a wrapper for a foreign window solely to allow embedding Qt + // into a native Android app, in which case we should not try to control it more than we "need" to + return !QtAndroid::isQtApplication() && window()->isTopLevel(); +} + void QAndroidPlatformWindow::setSurface(JNIEnv *env, jobject object, jint windowId, QtJniTypes::Surface surface) { |