From afbad00a4d9ff28967ca15e0f9029925e86f2cf4 Mon Sep 17 00:00:00 2001 From: Paul Olav Tvete Date: Mon, 10 Mar 2014 13:21:06 +0100 Subject: QQuickWidget move/resize fix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Ulf Hermann --- src/widgets/kernel/qwidget_qpa.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src') 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); + } } } -- cgit v1.2.3