mirror-ghostty/macos/Sources/Features/QuickTerminal
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
..
QuickTerminal.xib rename slide to quick terminal 2024-09-28 15:20:35 -07:00
QuickTerminalController.swift macos: use stable display UUID for quick terminal screen tracking 2025-10-17 21:04:23 -07:00
QuickTerminalPosition.swift macos: use visible frame for quick terminal sizing calculation 2025-08-27 06:59:02 -07:00
QuickTerminalScreen.swift macos: handle multiple monitors properly 2024-09-28 20:52:22 -07:00
QuickTerminalScreenStateCache.swift macos: use stable display UUID for quick terminal screen tracking 2025-10-17 21:04:23 -07:00
QuickTerminalSize.swift macos: style changes for quick terminal sizing 2025-08-26 10:20:16 -07:00
QuickTerminalSpaceBehavior.swift fix the comment (quick-terminal-space-behavior) 2025-01-08 11:03:18 -08:00
QuickTerminalWindow.swift typo found typos, typo may keep them 2025-08-22 09:19:25 -07:00