aboutsummaryrefslogtreecommitdiffstats
path: root/src/declarative/items/qsgcanvas.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/declarative/items/qsgcanvas.cpp')
-rw-r--r--src/declarative/items/qsgcanvas.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/declarative/items/qsgcanvas.cpp b/src/declarative/items/qsgcanvas.cpp
index 963c19f25d..240088cf23 100644
--- a/src/declarative/items/qsgcanvas.cpp
+++ b/src/declarative/items/qsgcanvas.cpp
@@ -2085,8 +2085,11 @@ void QSGCanvasRenderThread::paint()
exhaustSyncEvent();
isPaintCompleted = false;
- while (isRunning() && !isPaintCompleted)
+ while (isRunning() && !isPaintCompleted) {
+ if (isRenderBlocked)
+ wake();
wait();
+ }
unlockInGui();
// paint is only called for the inital show. After that we will do all
@@ -2182,9 +2185,7 @@ QImage QSGCanvasRenderThread::grab()
doGrab = true;
isPaintCompleted = false;
while (isRunning() && !isPaintCompleted) {
- // If we're in an animation we don't need to wake as we know another frame
- // will be pending anyway.
- if (!d->animationRunning)
+ if (!isRenderBlocked)
wake();
wait();
}