summaryrefslogtreecommitdiffstats
path: root/video/out/cocoa-cb/window.swift
diff options
context:
space:
mode:
Diffstat (limited to 'video/out/cocoa-cb/window.swift')
-rw-r--r--video/out/cocoa-cb/window.swift15
1 files changed, 15 insertions, 0 deletions
diff --git a/video/out/cocoa-cb/window.swift b/video/out/cocoa-cb/window.swift
index bd94330dcb..f720205e5c 100644
--- a/video/out/cocoa-cb/window.swift
+++ b/video/out/cocoa-cb/window.swift
@@ -376,7 +376,22 @@ class Window: NSWindow, NSWindowDelegate {
override func setFrame(_ frameRect: NSRect, display flag: Bool) {
let newFrame = !isAnimating && isInFullscreen ? targetScreen!.frame :
frameRect
+ let aspectRatioDiff = fabs( (newFrame.width/newFrame.height) -
+ (frame.width/frame.height) )
+
+ let isNotUserLiveResize = isAnimating || !(!isAnimating && inLiveResize)
+ if aspectRatioDiff > 0.005 && isNotUserLiveResize {
+ cocoaCB.layer.drawLock.lock()
+ cocoaCB.layer.atomicDrawingStart()
+ }
+
super.setFrame(newFrame, display: flag)
+ cocoaCB.layer.neededFlips += 1
+
+ if aspectRatioDiff > 0.005 && isNotUserLiveResize {
+ Swift.print("drawUnLock")
+ cocoaCB.layer.drawLock.unlock()
+ }
if keepAspect {
contentAspectRatio = unfsContentFrame!.size