aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFilipe Azevedo <filipe.azevedo@kdab.com>2016-12-13 16:05:05 +0100
committerFilipe Azevedo <filipe.azevedo@kdab.com>2017-05-16 09:06:09 +0000
commitcaa273e3bc6a2bece76c190b4135103eb7bbeab9 (patch)
treedf9f2bee9b01730bbd3e447a679e7c9dbd115527
parent2a9fd3d83a25936fbf590773532d76e963b29d4e (diff)
Fix wrong grabbing behavior
QQuickWidget::grabFrameBuffer() was not polishing its items nor syncing the scene graph compared to standard QQuickWindow::grabWindow(). This lead to QQuickWidget grabbed content to be outdated (render the previous frame as a new frame). Task-number: QTBUG-57596 Change-Id: I0a2eff0c4f84cfd432f60f9d2fc41ac6a723fa5e Reviewed-by: Robin Burchell <robin.burchell@viroteck.net> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> (cherry picked from commit 0d243a89ac225f4080f16c93e4a6340d0ddc6f0e) Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
-rw-r--r--src/quick/items/qquickrendercontrol.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/quick/items/qquickrendercontrol.cpp b/src/quick/items/qquickrendercontrol.cpp
index fd8d354594..26cf285c00 100644
--- a/src/quick/items/qquickrendercontrol.cpp
+++ b/src/quick/items/qquickrendercontrol.cpp
@@ -356,6 +356,9 @@ QImage QQuickRenderControl::grab()
if (!d->window)
return QImage();
+ QQuickWindowPrivate *cd = QQuickWindowPrivate::get(d->window);
+ cd->polishItems();
+ cd->syncSceneGraph();
render();
QImage grabContent = qt_gl_read_framebuffer(d->window->size() * d->window->effectiveDevicePixelRatio(), false, false);
return grabContent;