summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Olav Tvete <paul.tvete@digia.com>2014-03-10 13:21:06 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-03-13 13:27:29 +0100
commitafbad00a4d9ff28967ca15e0f9029925e86f2cf4 (patch)
treef821be5408d84dfb89f10d1d8a64fae27cbb5f7f /src
parenta9d4aea49401f6c138940f42012070daddd04855 (diff)
QQuickWidget move/resize fix
Make sure the alphamask in the backingstore is updated whenever the geometry of a QQuickWidget/QOpenGLWidget child changes. Task-number: QTBUG-37372 Change-Id: I70e94664bd7da774694645f604e1a7277fe563c7 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com> Reviewed-by: Ulf Hermann <ulf.hermann@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/widgets/kernel/qwidget_qpa.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/widgets/kernel/qwidget_qpa.cpp b/src/widgets/kernel/qwidget_qpa.cpp
index 5885673591..3f0b0936c3 100644
--- a/src/widgets/kernel/qwidget_qpa.cpp
+++ b/src/widgets/kernel/qwidget_qpa.cpp
@@ -762,10 +762,15 @@ void QWidgetPrivate::setGeometry_sys(int x, int y, int w, int h, bool isMove)
}
if (!q->isWindow()) {
- if (isMove && !isResize)
+ if (renderToTexture) {
+ QRegion updateRegion(q->geometry());
+ updateRegion += QRect(oldPos, olds);
+ q->parentWidget()->d_func()->invalidateBuffer(updateRegion);
+ } else if (isMove && !isResize) {
moveRect(QRect(oldPos, olds), x - oldPos.x(), y - oldPos.y());
- else
+ } else {
invalidateBuffer_resizeHelper(oldPos, olds);
+ }
}
}