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:
parent
9aa0905c10
commit
b207c1d4a1
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user