diff options
author | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2018-03-22 12:54:35 +0100 |
---|---|---|
committer | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2018-03-29 10:01:41 +0000 |
commit | bff59f87ba11cac1dfa710f021522372de7a776f (patch) | |
tree | 9fa99636bf623d631abd5f9a0fef073c150b7fe0 /src/plugins/platforms/ios | |
parent | db7c644cd634cce3b309fb63978f466456e0f559 (diff) |
Move delivery of update requests into QPlatformWindow
Having deliverUpdateRequest in QWindowPrivate was a bit awkward and
asymmetric to the QPlatformWindow::requestUpdate() API. Keeping
them together follows the existing pattern of plumbing things
through the platform window, and also allows us to move away
from platform plugins relying on QWindowPrivate implementation
details.
Change-Id: Ib131ccdd1c2bdd6ff1c8d95facbc3f6f88a1abcf
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/plugins/platforms/ios')
-rw-r--r-- | src/plugins/platforms/ios/qiosscreen.mm | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/plugins/platforms/ios/qiosscreen.mm b/src/plugins/platforms/ios/qiosscreen.mm index 91d26c88c2..8a9a974825 100644 --- a/src/plugins/platforms/ios/qiosscreen.mm +++ b/src/plugins/platforms/ios/qiosscreen.mm @@ -390,14 +390,19 @@ void QIOSScreen::deliverUpdateRequests() const QList<QWindow*> windows = QGuiApplication::allWindows(); for (int i = 0; i < windows.size(); ++i) { - if (platformScreenForWindow(windows.at(i)) != this) + QWindow *window = windows.at(i); + if (platformScreenForWindow(window) != this) continue; - QWindowPrivate *wp = static_cast<QWindowPrivate *>(QObjectPrivate::get(windows.at(i))); + QWindowPrivate *wp = qt_window_private(window); if (!wp->updateRequestPending) continue; - wp->deliverUpdateRequest(); + QPlatformWindow *platformWindow = window->handle(); + if (!platformWindow) + continue; + + platformWindow->deliverUpdateRequest(); // Another update request was triggered, keep the display link running if (wp->updateRequestPending) |