summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/cocoa/qcocoabackingstore.mm
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2018-08-08 18:51:11 +0000
committerThe Qt Project <gerrit-noreply@qt-project.org>2018-08-08 18:51:11 +0000
commit977c8a4d18a1833c90ba1051d022434755216e0c (patch)
treeca4d76c4884907989711caa0f85aa92610b1d0be /src/plugins/platforms/cocoa/qcocoabackingstore.mm
parent1a0b54b825afa18dc297e0168c4dc0ae607a0885 (diff)
parent577654047a0bb2810d789fb2fbc550ccfee47029 (diff)
Merge "Merge remote-tracking branch 'origin/5.11' into dev" into refs/staging/dev
Diffstat (limited to 'src/plugins/platforms/cocoa/qcocoabackingstore.mm')
-rw-r--r--src/plugins/platforms/cocoa/qcocoabackingstore.mm10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoabackingstore.mm b/src/plugins/platforms/cocoa/qcocoabackingstore.mm
index 332683f63e..13b4e2ecd1 100644
--- a/src/plugins/platforms/cocoa/qcocoabackingstore.mm
+++ b/src/plugins/platforms/cocoa/qcocoabackingstore.mm
@@ -159,13 +159,13 @@ void QCocoaBackingStore::flush(QWindow *window, const QRegion &region, 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]