summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/platforms/ios/qioswindow.mm16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/plugins/platforms/ios/qioswindow.mm b/src/plugins/platforms/ios/qioswindow.mm
index d79c1de461..53da97e12d 100644
--- a/src/plugins/platforms/ios/qioswindow.mm
+++ b/src/plugins/platforms/ios/qioswindow.mm
@@ -260,7 +260,21 @@ QIOSWindow::~QIOSWindow()
void QIOSWindow::setVisible(bool visible)
{
QPlatformWindow::setVisible(visible);
- [m_view setHidden:!visible];
+ m_view.hidden = !visible;
+
+ if (isQtApplication() && !visible) {
+ // Activate top-most visible QWindow:
+ NSArray *subviews = rootViewController().view.subviews;
+ for (int i = int(subviews.count) - 1; i >= 0; --i) {
+ UIView *view = [subviews objectAtIndex:i];
+ if (!view.hidden) {
+ if (QWindow *window = view.qwindow) {
+ QWindowSystemInterface::handleWindowActivated(window);
+ break;
+ }
+ }
+ }
+ }
}
void QIOSWindow::setGeometry(const QRect &rect)