aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquickwindowmanager.cpp
diff options
context:
space:
mode:
authorSamuel Rødal <samuel.rodal@nokia.com>2012-04-19 10:49:12 +0200
committerQt by Nokia <qt-info@nokia.com>2012-04-19 11:05:50 +0200
commit96b75209ab46ba0efc23af8a984f7142c6ba6240 (patch)
treecb6c66f90aa1de7a61fefc47da7c7276df8d4da8 /src/quick/items/qquickwindowmanager.cpp
parent127562e8747f7a51aeb79d58605c19c0de600e34 (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/items/qquickwindowmanager.cpp')
-rw-r--r--src/quick/items/qquickwindowmanager.cpp6
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)