diff options
-rw-r--r-- | src/plugins/platforms/ios/qioswindow.h | 1 | ||||
-rw-r--r-- | src/plugins/platforms/ios/qioswindow.mm | 14 |
2 files changed, 12 insertions, 3 deletions
diff --git a/src/plugins/platforms/ios/qioswindow.h b/src/plugins/platforms/ios/qioswindow.h index 7a0224dab0..cefb6f9388 100644 --- a/src/plugins/platforms/ios/qioswindow.h +++ b/src/plugins/platforms/ios/qioswindow.h @@ -65,6 +65,7 @@ public: void setGeometry(const QRect &rect); void setWindowState(Qt::WindowState state); + void setParent(const QPlatformWindow *window); void handleContentOrientationChange(Qt::ScreenOrientation orientation); void setVisible(bool visible); diff --git a/src/plugins/platforms/ios/qioswindow.mm b/src/plugins/platforms/ios/qioswindow.mm index 9bc2541715..e95f392655 100644 --- a/src/plugins/platforms/ios/qioswindow.mm +++ b/src/plugins/platforms/ios/qioswindow.mm @@ -324,9 +324,7 @@ QIOSWindow::QIOSWindow(QWindow *window) , m_windowLevel(0) , m_devicePixelRatio(1.0) { - if (isQtApplication()) - [rootViewController().view addSubview:m_view]; - + setParent(parent()); setWindowState(window->windowState()); // Retina support: get screen scale factor and set it in the content view. @@ -424,6 +422,16 @@ void QIOSWindow::setWindowState(Qt::WindowState state) } } +void QIOSWindow::setParent(const QPlatformWindow *parentWindow) +{ + if (parentWindow) { + UIView *parentView = reinterpret_cast<UIView *>(parentWindow->winId()); + [parentView addSubview:m_view]; + } else if (isQtApplication()) { + [rootViewController().view addSubview:m_view]; + } +} + void QIOSWindow::requestActivateWindow() { // Note that several windows can be active at the same time if they exist in the same |