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>
This commit is contained in:
Paul Olav Tvete 2014-03-10 13:21:06 +01:00 committed by The Qt Project
parent a9d4aea494
commit afbad00a4d

View File

@ -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);
}
}
}