diff options
author | Paul Olav Tvete <paul.tvete@digia.com> | 2014-02-28 11:07:11 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-02-28 12:08:46 +0100 |
commit | 6ef802ff6ed1cd234848b65fdad56dc3b0579cff (patch) | |
tree | ec709a1186d1a4ee71eeb036be203497a0e9def6 /src/quick/items/qquickrendercontrol.cpp | |
parent | 0a23e840e27964fad75e8b0ef7b31701c51f93d5 (diff) |
QQuickWidget: handle hide and show events properly
Task-number: QTBUG-37062
Change-Id: I3763385168eaa0ccd009ada563f56ea0251029a5
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Diffstat (limited to 'src/quick/items/qquickrendercontrol.cpp')
-rw-r--r-- | src/quick/items/qquickrendercontrol.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/quick/items/qquickrendercontrol.cpp b/src/quick/items/qquickrendercontrol.cpp index faee1358ae..16ed6f0e10 100644 --- a/src/quick/items/qquickrendercontrol.cpp +++ b/src/quick/items/qquickrendercontrol.cpp @@ -162,6 +162,26 @@ bool QQuickRenderControl::sync() } /*! + Stop rendering and release resources. This function is typically + called when the window is hidden. Requires a current context. + */ +void QQuickRenderControl::stop() +{ + Q_D(QQuickRenderControl); + if (!d->window) + return; + + QQuickWindowPrivate *cd = QQuickWindowPrivate::get(d->window); + cd->fireAboutToStop(); + cd->cleanupNodesOnShutdown(); + + if (!cd->persistentSceneGraph) { + d->rc->invalidate(); + QCoreApplication::sendPostedEvents(0, QEvent::DeferredDelete); + } +} + +/*! Render the scenegraph using the current context. */ void QQuickRenderControl::render() |