iOS: Fix failing assert in QUIView displayLayer()

In layoutSubviews we take the root viewcontroller position into account
when determening the new QWindow geometry, but we were missing this logic
in displayLayer, and would assert if the in-call statusbar was visible.

Since we don't really need the position of the window in displayLayer,
we change the assert to only check the size of the exposed area, which
is independent of the position of the root viewcontroller.

Change-Id: I774b8d9b075518e729f488a789b3a9e584c3f4d3
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
This commit is contained in:
Tor Arne Vestbø 2013-12-09 15:09:29 +01:00 committed by The Qt Project
parent 7fef5fe293
commit 37f99502f9

View File

@ -204,11 +204,12 @@
- (void)displayLayer:(CALayer *)layer
{
QRect geometry = fromCGRect(layer.frame).toRect();
Q_ASSERT(m_qioswindow->geometry() == geometry);
QSize bounds = fromCGRect(layer.bounds).toRect().size();
Q_ASSERT(m_qioswindow->geometry().size() == bounds);
Q_ASSERT(self.hidden == !m_qioswindow->window()->isVisible());
QRegion region = self.hidden ? QRegion() : QRect(QPoint(), geometry.size());
QRegion region = self.hidden ? QRegion() : QRect(QPoint(), bounds);
QWindowSystemInterface::handleExposeEvent(m_qioswindow->window(), region);
QWindowSystemInterface::flushWindowSystemEvents();
}