diff --git a/src/plugins/platforms/android/qandroidplatformwindow.cpp b/src/plugins/platforms/android/qandroidplatformwindow.cpp index 8f68d04849a..b8d9351e87c 100644 --- a/src/plugins/platforms/android/qandroidplatformwindow.cpp +++ b/src/plugins/platforms/android/qandroidplatformwindow.cpp @@ -30,8 +30,27 @@ QAndroidPlatformWindow::QAndroidPlatformWindow(QWindow *window) void QAndroidPlatformWindow::initialize() { + if (isEmbeddingContainer()) + return; + QWindow *window = QPlatformWindow::window(); + if (parent()) { + QAndroidPlatformWindow *androidParent = static_cast(parent()); + if (!androidParent->isEmbeddingContainer()) + m_nativeParentQtWindow = androidParent->nativeWindow(); + } + + AndroidBackendRegister *reg = QtAndroid::backendRegister(); + QtJniTypes::QtInputConnectionListener listener = + reg->callInterface( + "getInputConnectionListener"); + + m_nativeQtWindow = QJniObject::construct( + QNativeInterface::QAndroidApplication::context(), + isForeignWindow(), m_nativeParentQtWindow, listener); + m_nativeViewId = m_nativeQtWindow.callMethod("getId"); + m_windowFlags = Qt::Widget; m_windowState = Qt::WindowNoState; // the surfaceType is overwritten in QAndroidPlatformOpenGLWindow ctor so let's save @@ -57,25 +76,6 @@ void QAndroidPlatformWindow::initialize() setGeometry(finalNativeGeometry); } - if (isEmbeddingContainer()) - return; - - if (parent()) { - QAndroidPlatformWindow *androidParent = static_cast(parent()); - if (!androidParent->isEmbeddingContainer()) - m_nativeParentQtWindow = androidParent->nativeWindow(); - } - - AndroidBackendRegister *reg = QtAndroid::backendRegister(); - QtJniTypes::QtInputConnectionListener listener = - reg->callInterface( - "getInputConnectionListener"); - - m_nativeQtWindow = QJniObject::construct( - QNativeInterface::QAndroidApplication::context(), - isForeignWindow(), m_nativeParentQtWindow, listener); - m_nativeViewId = m_nativeQtWindow.callMethod("getId"); - if (window->isTopLevel()) platformScreen()->addWindow(this);