summaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/platforms/ios/qioswindow.h1
-rw-r--r--src/plugins/platforms/ios/qioswindow.mm9
2 files changed, 7 insertions, 3 deletions
diff --git a/src/plugins/platforms/ios/qioswindow.h b/src/plugins/platforms/ios/qioswindow.h
index df632e672e..2a762d2bdc 100644
--- a/src/plugins/platforms/ios/qioswindow.h
+++ b/src/plugins/platforms/ios/qioswindow.h
@@ -93,6 +93,7 @@ public:
private:
EAGLView *m_view;
+ QRect m_requestedGeometry;
};
QT_END_NAMESPACE
diff --git a/src/plugins/platforms/ios/qioswindow.mm b/src/plugins/platforms/ios/qioswindow.mm
index 266000d2de..b209bbc159 100644
--- a/src/plugins/platforms/ios/qioswindow.mm
+++ b/src/plugins/platforms/ios/qioswindow.mm
@@ -113,7 +113,9 @@ static QRect fromCGRect(const CGRect &rect)
qWarning() << m_qioswindow->window()
<< "is backed by a UIView that has a transform set. This is not supported.";
- QWindowSystemInterface::handleGeometryChange(m_qioswindow->window(), fromCGRect(self.frame));
+ QRect geometry = fromCGRect(self.frame);
+ m_qioswindow->QPlatformWindow::setGeometry(geometry);
+ QWindowSystemInterface::handleGeometryChange(m_qioswindow->window(), geometry);
[super layoutSubviews];
}
@@ -197,6 +199,7 @@ QT_BEGIN_NAMESPACE
QIOSWindow::QIOSWindow(QWindow *window)
: QPlatformWindow(window)
, m_view([[EAGLView alloc] initWithQIOSWindow:this])
+ , m_requestedGeometry(QPlatformWindow::geometry())
{
if ([[UIApplication sharedApplication].delegate isKindOfClass:[QIOSApplicationDelegate class]])
[[UIApplication sharedApplication].delegate.window.rootViewController.view addSubview:m_view];
@@ -213,7 +216,7 @@ void QIOSWindow::setGeometry(const QRect &rect)
{
// If the window is in fullscreen, just bookkeep the requested
// geometry in case the window goes into Qt::WindowNoState later:
- QPlatformWindow::setGeometry(rect);
+ m_requestedGeometry = rect;
if (window()->windowState() & (Qt::WindowMaximized | Qt::WindowFullScreen))
return;
@@ -240,7 +243,7 @@ void QIOSWindow::setWindowState(Qt::WindowState state)
m_view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
break; }
default:
- m_view.frame = toCGRect(geometry());
+ m_view.frame = toCGRect(m_requestedGeometry);
m_view.autoresizingMask = UIViewAutoresizingNone;
break;
}