Fix incorrect rendering when moving widget into screen

When the widget we are moving in was previously outside of its parent's
clip rect, then we cannot use the accelerated move code path, as there
are no pixels to bitBlt from the previous to the new area.

Pick-to: 6.2
Task-number: QTBUG-26269
Task-number: QTBUG-98151
Change-Id: I324c6111de27cdd14cf8de8632a980aa351cc123
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
This commit is contained in:
Volker Hilsheimer 2021-12-06 21:20:51 +01:00
parent ec267a4c7c
commit 3b24713098

View File

@ -439,7 +439,7 @@ void QWidgetPrivate::moveRect(const QRect &rect, int dx, int dy)
const QRect parentRect(rect & clipR);
const bool nativeWithTextureChild = textureChildSeen && hasPlatformWindow(q);
bool accelerateMove = accelEnv && isOpaque && !nativeWithTextureChild
bool accelerateMove = accelEnv && isOpaque && !nativeWithTextureChild && sourceRect.isValid()
#if QT_CONFIG(graphicsview)
// No accelerate move for proxy widgets.
&& !tlw->d_func()->extra->proxyWidget