macos: handle multiple monitors properly

This commit is contained in:
Mitchell Hashimoto
2024-09-28 20:21:47 -07:00
parent bcdbb5899b
commit 4f9d49b380
6 changed files with 91 additions and 10 deletions

View File

@@ -0,0 +1,37 @@
import Cocoa
enum QuickTerminalScreen {
case main
case mouse
case menuBar
init?(fromGhosttyConfig string: String) {
switch (string) {
case "main":
self = .main
case "mouse":
self = .mouse
case "macos-menu-bar":
self = .menuBar
default:
return nil
}
}
var screen: NSScreen? {
switch (self) {
case .main:
return NSScreen.main
case .mouse:
let mouseLoc = NSEvent.mouseLocation
return NSScreen.screens.first(where: { $0.frame.contains(mouseLoc) })
case .menuBar:
return NSScreen.screens.first
}
}
}