macos: clamp window size to screen size on screen parameter changes

Fixes #2462

This sets up a listener for screen parameter changes. This only triggers
when a screen is added, removed, or a parameter such as its resolution
changes. This doesn't trigger when a window is simply moved from one
screen to another.

On parameter change, we ensure that the window is within the bounds of
the screen. As an exception, if the window was previously already
outside the bounds of the screen, we don't move it back in.
This commit is contained in:
Mitchell Hashimoto
2024-10-19 10:01:28 -07:00
parent ebe8fb3ab3
commit 70acb0d76e
5 changed files with 97 additions and 2 deletions

View File

@@ -0,0 +1,10 @@
import Foundation
/// True if we appear to be running in Xcode.
func isRunningInXcode() -> Bool {
if let _ = ProcessInfo.processInfo.environment["__XCODE_BUILT_PRODUCTS_DIR_PATHS"] {
return true
}
return false
}