diff options
author | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2019-09-25 17:38:06 +0200 |
---|---|---|
committer | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2019-09-28 11:00:02 +0200 |
commit | cefd214b1bf6bd87ba3780d42b4a86452dc9eb55 (patch) | |
tree | c37422a96efd95241c915f3e787486f408576309 /src/plugins/platforms | |
parent | fd49d5e31596525595885393d24893c2173a8b2e (diff) |
macOS: Improve layer delegate setup
We should detect the cases where there's already a delegate, and
setting up the delegate before the layer is added makes sense.
Change-Id: I67896cbc96d11ce9a3826fd8aa0e5e104a83a21c
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Diffstat (limited to 'src/plugins/platforms')
-rw-r--r-- | src/plugins/platforms/cocoa/qnsview_drawing.mm | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/plugins/platforms/cocoa/qnsview_drawing.mm b/src/plugins/platforms/cocoa/qnsview_drawing.mm index 17746e9e94..7739be8319 100644 --- a/src/plugins/platforms/cocoa/qnsview_drawing.mm +++ b/src/plugins/platforms/cocoa/qnsview_drawing.mm @@ -160,8 +160,14 @@ << "with" << layer << "due to being" << ([self layerExplicitlyRequested] ? "explicitly requested" : [self shouldUseMetalLayer] ? "needed by surface type" : "enabled by macOS"); + if (layer.delegate && layer.delegate != self) { + qCWarning(lcQpaDrawing) << "Layer already has delegate" << layer.delegate + << "This delegate is responsible for all view updates for" << self; + } else { + layer.delegate = self; + } + [super setLayer:layer]; - layer.delegate = self; // When adding a view to a view hierarchy the backing properties will change // which results in updating the contents scale, but in case of switching the |