From 4deae5e4b53220c5becd7312a4b0d7f5707d5757 Mon Sep 17 00:00:00 2001 From: der richter Date: Sat, 21 Mar 2020 13:48:23 +0100 Subject: cocoa-cb: report actual unfs window size for current window scale --- video/out/cocoa-cb/window.swift | 4 ++++ video/out/cocoa_cb_common.swift | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/video/out/cocoa-cb/window.swift b/video/out/cocoa-cb/window.swift index 9391b0d652..b1a5b6c26b 100644 --- a/video/out/cocoa-cb/window.swift +++ b/video/out/cocoa-cb/window.swift @@ -497,6 +497,10 @@ class Window: NSWindow, NSWindowDelegate { func windowDidEndLiveResize(_ notification: Notification) { cocoaCB.layer?.inLiveResize = false cocoaCB.mpv?.setConfigProperty(maximized: isZoomed) + + if let contentViewFrame = contentView?.frame, !isAnimating { + unfsContentFrame = convertToScreen(contentViewFrame) + } } func windowShouldClose(_ sender: NSWindow) -> Bool { diff --git a/video/out/cocoa_cb_common.swift b/video/out/cocoa_cb_common.swift index c50147ffca..c3f0ab2cc8 100644 --- a/video/out/cocoa_cb_common.swift +++ b/video/out/cocoa_cb_common.swift @@ -516,6 +516,17 @@ class CocoaCB: NSObject { return VO_TRUE } return VO_FALSE + case VOCTRL_GET_UNFS_WINDOW_SIZE: + let sizeData = data?.assumingMemoryBound(to: Int32.self) + let size = UnsafeMutableBufferPointer(start: sizeData, count: 2) + var rect = ccb.window?.unfsContentFrame ?? NSRect(x: 0, y: 0, width: 1280, height: 720) + if let screen = ccb.window?.currentScreen, !Bool(ccb.mpv?.opts.hidpi_window_scale ?? 0) { + rect = screen.convertRectToBacking(rect) + } + + size[0] = Int32(rect.size.width) + size[1] = Int32(rect.size.height) + return VO_TRUE case VOCTRL_SET_UNFS_WINDOW_SIZE: if let sizeData = data?.assumingMemoryBound(to: Int32.self) { let size = UnsafeBufferPointer(start: sizeData, count: 2) -- cgit v1.2.3