diff --git a/src/plugins/platforms/windows/qwindowsbackingstore.cpp b/src/plugins/platforms/windows/qwindowsbackingstore.cpp index d4e3cf3ccca..e580b0243d9 100644 --- a/src/plugins/platforms/windows/qwindowsbackingstore.cpp +++ b/src/plugins/platforms/windows/qwindowsbackingstore.cpp @@ -50,7 +50,10 @@ void QWindowsBackingStore::flush(QWindow *window, const QRegion ®ion, QWindowsWindow *rw = QWindowsWindow::windowsWindowOf(window); Q_ASSERT(rw); - if (rw->isLayered()) { + const bool hasAlpha = rw->format().hasAlpha(); + const Qt::WindowFlags flags = window->flags(); + // Note: This condition must be in sync with setWindowOpacity. FIXME: Improve this :) + if (rw->isLayered() && hasAlpha && QWindowsWindow::hasNoNativeFrame(rw->handle(), flags)) { // Windows with alpha: Use blend function to update. QRect r = QHighDpi::toNativePixels(window->frameGeometry(), window); QMargins frameMargins = rw->frameMargins();