summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--video/out/cocoa-cb/window.swift13
1 files changed, 13 insertions, 0 deletions
diff --git a/video/out/cocoa-cb/window.swift b/video/out/cocoa-cb/window.swift
index ae59f8bb6f..26308c5563 100644
--- a/video/out/cocoa-cb/window.swift
+++ b/video/out/cocoa-cb/window.swift
@@ -107,6 +107,19 @@ class Window: NSWindow, NSWindowDelegate {
self.init(contentRect: contentRect,
styleMask: [.titled, .closable, .miniaturizable, .resizable],
backing: .buffered, defer: false, screen: screen)
+
+ // workaround for an AppKit bug where the NSWindow can't be placed on a
+ // none Main screen NSScreen outside the Main screen's frame bounds
+ if screen != NSScreen.main() {
+ var absoluteWantedOrigin = contentRect.origin
+ absoluteWantedOrigin.x += screen!.frame.origin.x
+ absoluteWantedOrigin.y += screen!.frame.origin.y
+
+ if !NSEqualPoints(absoluteWantedOrigin, self.frame.origin) {
+ self.setFrameOrigin(absoluteWantedOrigin)
+ }
+ }
+
cocoaCB = ccb
title = cocoaCB.title
minSize = NSMakeSize(160, 90)