diff options
author | Samuel Rødal <samuel.rodal@nokia.com> | 2012-04-19 10:49:12 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-04-19 11:05:50 +0200 |
commit | 96b75209ab46ba0efc23af8a984f7142c6ba6240 (patch) | |
tree | cb6c66f90aa1de7a61fefc47da7c7276df8d4da8 /src/quick | |
parent | 127562e8747f7a51aeb79d58605c19c0de600e34 (diff) |
Delay rendering until canvas is exposed.
Prevents warnings about swapBuffers() being called with non-exposed
window on xcb.
Change-Id: Ib43fd588a7b62e7aaf14f2caddfa498fdced283a
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Diffstat (limited to 'src/quick')
-rw-r--r-- | src/quick/items/qquickwindowmanager.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/quick/items/qquickwindowmanager.cpp b/src/quick/items/qquickwindowmanager.cpp index 45a379a1c0..9b51bf2d34 100644 --- a/src/quick/items/qquickwindowmanager.cpp +++ b/src/quick/items/qquickwindowmanager.cpp @@ -1167,7 +1167,7 @@ void QQuickTrivialWindowManager::canvasDestroyed(QQuickCanvas *canvas) void QQuickTrivialWindowManager::renderCanvas(QQuickCanvas *canvas) { - if (!m_windows.contains(canvas)) + if (!canvas->isExposed() || !m_windows.contains(canvas)) return; CanvasData &data = const_cast<CanvasData &>(m_windows[canvas]); @@ -1221,8 +1221,10 @@ void QQuickTrivialWindowManager::renderCanvas(QQuickCanvas *canvas) maybeUpdate(canvas); } -void QQuickTrivialWindowManager::exposureChanged(QQuickCanvas *) +void QQuickTrivialWindowManager::exposureChanged(QQuickCanvas *canvas) { + if (canvas->isExposed()) + renderCanvas(canvas); } QImage QQuickTrivialWindowManager::grab(QQuickCanvas *canvas) |