mirror-ghostty/macos
Mitchell Hashimoto ea505ec51d
macos: use stable display UUID for quick terminal screen tracking
NSScreen instances can be garbage collected at any time, even for
screens that remain connected, making NSMapTable with weak keys
unreliable for tracking per-screen state.

This changes the quick terminal to use CGDisplay UUIDs as stable
identifiers, keyed in a strong dictionary. Each entry stores the
window frame along with screen dimensions, scale factor, and last-seen
timestamp.

Rules for pruning:
- Entries are invalidated when screens shrink or change scale
- Entries persist and update when screens grow (allowing cached state
  to work with larger resolutions)
- Stale entries for disconnected screens expire after 14 days.
- Maximum of 10 screen entries to prevent unbounded growth
2025-10-17 21:04:23 -07:00
..
Assets.xcassets macos: Ghostty Icon Update for macOS Tahoe 2025-06-21 12:34:49 -07:00
Ghostty.xcodeproj macos: use stable display UUID for quick terminal screen tracking 2025-10-17 21:04:23 -07:00
Sources macos: use stable display UUID for quick terminal screen tracking 2025-10-17 21:04:23 -07:00
Tests macos: fix failing xcode tests 2025-10-14 06:55:10 -07:00
.gitignore build: LipoStep 2023-02-19 10:44:53 -08:00
Ghostty-Info.plist macOS: distinguish between Debug and Release(Stable/Tip) (#9149) 2025-10-12 13:07:29 -07:00
Ghostty.entitlements macos: add entitlements for basically everything so macos asks 2023-11-23 09:00:20 -08:00
GhosttyDebug.entitlements macos: add Sparkle via Swift PM 2023-12-18 19:09:38 -08:00
GhosttyReleaseLocal.entitlements fix(macos): ReleaseLocal build configuration with "Library Validation" disabled 2023-12-20 16:54:58 -05:00