1
0
mirror of https://github.com/mpv-player/mpv synced 2025-02-20 14:56:55 +00:00

cocoa-cb: fix a Cocoa window position on init bug

on init an NSWindow can't be placed on a none Main screen NSScreen
outside the Main screen's frame bounds.

To fix this we just check if the target screen is different from the
main screen and if that is the case we check the actual position with
the expect one. if they are different we try to reposition the window
to the wanted position.

Fixes #6453
This commit is contained in:
Akemi 2019-01-26 16:21:52 +01:00 committed by Jan Ekström
parent 9aa0905c10
commit b207c1d4a1

View File

@ -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)