mirror-ghostty/macos/Ghostty.xcodeproj
Mitchell Hashimoto 61f74158be
macos: use stable display UUID for quick terminal screen tracking (#9256)
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.

**This should make quick terminal size restore more stable than 1.2.2.**

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-23 09:45:44 -07:00
..
project.xcworkspace macos: update Sparkle to 2.7.3 2025-09-10 20:04:24 -07:00
xcshareddata/xcschemes macos: add benchmark tests to our Xcode project 2025-07-09 15:06:24 -07:00
project.pbxproj macos: use stable display UUID for quick terminal screen tracking (#9256) 2025-10-23 09:45:44 -07:00