diff --git a/src/plugins/platforms/android/qandroidplatformforeignwindow.cpp b/src/plugins/platforms/android/qandroidplatformforeignwindow.cpp index e84a481a2b1..af09c34d0ba 100644 --- a/src/plugins/platforms/android/qandroidplatformforeignwindow.cpp +++ b/src/plugins/platforms/android/qandroidplatformforeignwindow.cpp @@ -11,9 +11,16 @@ QT_BEGIN_NAMESPACE QAndroidPlatformForeignWindow::QAndroidPlatformForeignWindow(QWindow *window, WId nativeHandle) - : QAndroidPlatformWindow(window), m_view(nullptr), m_nativeViewInserted(false) + : QAndroidPlatformWindow(window) + , m_view(reinterpret_cast(nativeHandle)) + , m_nativeViewInserted(false) { - m_view = reinterpret_cast(nativeHandle); +} + +void QAndroidPlatformForeignWindow::initialize() +{ + QAndroidPlatformWindow::initialize(); + if (isEmbeddingContainer()) { m_nativeViewId = m_view.callMethod("getId"); return; diff --git a/src/plugins/platforms/android/qandroidplatformforeignwindow.h b/src/plugins/platforms/android/qandroidplatformforeignwindow.h index 503524ccedf..6238731a4a1 100644 --- a/src/plugins/platforms/android/qandroidplatformforeignwindow.h +++ b/src/plugins/platforms/android/qandroidplatformforeignwindow.h @@ -16,6 +16,7 @@ class QAndroidPlatformForeignWindow : public QAndroidPlatformWindow { public: explicit QAndroidPlatformForeignWindow(QWindow *window, WId nativeHandle); + void initialize() override; ~QAndroidPlatformForeignWindow(); void setGeometry(const QRect &rect) override; void setVisible(bool visible) override; diff --git a/src/plugins/platforms/android/qandroidplatformwindow.cpp b/src/plugins/platforms/android/qandroidplatformwindow.cpp index 2482160573e..f5bb5117c30 100644 --- a/src/plugins/platforms/android/qandroidplatformwindow.cpp +++ b/src/plugins/platforms/android/qandroidplatformwindow.cpp @@ -25,6 +25,13 @@ QAndroidPlatformWindow::QAndroidPlatformWindow(QWindow *window) m_surfaceContainerType(SurfaceContainer::TextureView), m_nativeParentQtWindow(nullptr), m_androidSurfaceObject(nullptr) { + // Please add any initialization in the function below +} + +void QAndroidPlatformWindow::initialize() +{ + QWindow *window = QPlatformWindow::window(); + m_windowFlags = Qt::Widget; m_windowState = Qt::WindowNoState; // the surfaceType is overwritten in QAndroidPlatformOpenGLWindow ctor so let's save diff --git a/src/plugins/platforms/android/qandroidplatformwindow.h b/src/plugins/platforms/android/qandroidplatformwindow.h index 3f1e8ac992c..3c94dec3ea2 100644 --- a/src/plugins/platforms/android/qandroidplatformwindow.h +++ b/src/plugins/platforms/android/qandroidplatformwindow.h @@ -32,6 +32,8 @@ public: }; explicit QAndroidPlatformWindow(QWindow *window); + void initialize() override; + ~QAndroidPlatformWindow(); void lower() override; void raise() override;