diff options
author | Filipe Azevedo <filipe.azevedo@kdab.com> | 2016-12-13 16:05:05 +0100 |
---|---|---|
committer | Filipe Azevedo <filipe.azevedo@kdab.com> | 2017-05-16 09:06:09 +0000 |
commit | caa273e3bc6a2bece76c190b4135103eb7bbeab9 (patch) | |
tree | df9f2bee9b01730bbd3e447a679e7c9dbd115527 | |
parent | 2a9fd3d83a25936fbf590773532d76e963b29d4e (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.cpp | 3 |
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; |