diff options
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoabackingstore.mm | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoabackingstore.mm b/src/plugins/platforms/cocoa/qcocoabackingstore.mm index 091453785e..1343fbc45a 100644 --- a/src/plugins/platforms/cocoa/qcocoabackingstore.mm +++ b/src/plugins/platforms/cocoa/qcocoabackingstore.mm @@ -162,13 +162,13 @@ void QCocoaBackingStore::flush(QWindow *window, const QRegion ®ion, const QPo const qreal devicePixelRatio = m_image.devicePixelRatio(); - // If the flushed window is a content view, and not in unified toolbar mode, - // and is fully opaque, we can get away with copying the backingstore instead - // of blending. + // If the flushed window is a content view, and we're filling the drawn area + // completely, or it doesn't have a window background we need to preserve, + // we can get away with copying instead of blending the backing store. QCocoaWindow *cocoaWindow = static_cast<QCocoaWindow *>(window->handle()); const NSCompositingOperation compositingOperation = cocoaWindow->isContentView() - && cocoaWindow->isOpaque() && !windowHasUnifiedToolbar() ? - NSCompositingOperationCopy : NSCompositingOperationSourceOver; + && (cocoaWindow->isOpaque() || view.window.backgroundColor == NSColor.clearColor) + ? NSCompositingOperationCopy : NSCompositingOperationSourceOver; #ifdef QT_DEBUG static bool debugBackingStoreFlush = [[NSUserDefaults standardUserDefaults] |