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,12 +762,17 @@ void QWidgetPrivate::setGeometry_sys(int x, int y, int w, int h, bool isMove)
} }
if (!q->isWindow()) { 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()); moveRect(QRect(oldPos, olds), x - oldPos.x(), y - oldPos.y());
else } else {
invalidateBuffer_resizeHelper(oldPos, olds); invalidateBuffer_resizeHelper(oldPos, olds);
} }
} }
}
// generate a move event for QWidgets without window handles. QWidgets with native // generate a move event for QWidgets without window handles. QWidgets with native
// window handles already receive a move event from // window handles already receive a move event from