What's New in Snaps Of Apps 1.10
✨Enhancements
- Rock‑solid multi‑display restore — Windows now reliably restore to the correct monitor using robust screen attribution and a safer restore pipeline.
- Smarter screen attribution (save) — Uses CoreGraphics display bounds with a configurable primary rule (center‑in‑bounds or largest overlap) plus nearest fallback to assign the correct display when capturing.
- Stronger target screen resolution (restore) — Matches displays by exact saved bounds first, then nearest origin, then ID, then closest size to resist ID flips and cable swaps.
- AX/AppKit conversion fixed — Coordinates are now converted relative to the main display’s top‑left (not the desktop union), preventing main‑screen snapping.
- Strict screen enforcement (optional) — A center‑hop to the destination display before final placement helps stubborn apps land on the correct monitor.
- Better window selection — For apps with multiple windows (Chrome, VS Code, etc.), the chosen window is now scored by title match and screen proximity.
- Display remap UI (when screens are missing) — Presents a 10.15‑friendly modal panel listing all connected displays with OK/Cancel and clear suggestions.
- Grouped, readable logs — Save/restore output is grouped by display name with blank‑line spacing; per‑app restore sections are also separated for fast scanning.
🐛Bug Fixes
- Fixed windows restoring to the wrong monitor after sleep/reboot or cable swaps (bounds/origin matching + corrected coordinate conversions).
- Fixed cases where only the Built‑in display appeared in the remap prompt; all connected displays now appear consistently on macOS 10.15.
- Fixed AX timing issues for apps like Microsoft Teams by polling for windows (and falling back to main/focused window) before restore.
- Fixed incorrect Y‑axis and union‑frame math that could cause off‑screen placement or main‑screen snapping.
- Fixed screen ID persistence issues by storing CGDirectDisplayID as unsigned bits in Core Data to avoid sign extension.
- Fixed quit flow logging and spacing; added detailed per‑bundle termination results.
- Removed ambiguous CF downcasts; CoreFoundation type checks are now explicit for clean builds.
🔧Developer / Advanced
- UI‑only capture: background agents and excluded bundle IDs are filtered out when saving snapshots.
- Restore is non‑destructive: remap choices are session‑only and never modify saved snapshots.
- Per‑display grouped logs include monitor names and both calculated and resulting rects for easy diagnosis.
🔙Compatibility
- macOS 10.15+ — All features, including the remap prompt, work on Catalina and later; Preferences use 10.15‑safe APIs.
- Backward‑compatible snapshots — Existing snapshots continue to restore; older entries without saved origins fall back gracefully.
Technical Details
- Version: 1.10
- Release Date: October 20, 2025
- Minimum System: macOS 10.15 (Catalina) and later
- Highlights: Robust multi‑display restore, 10.15 remap UI, strict screen enforcement, grouped logging
⬆️Upgrading from 1.9
- No migration required. Your existing snapshots will continue to restore; new captures benefit from improved display attribution and persistence.
- Optional preferences let you tailor capture heuristics (center vs overlap) and enable stricter restore behavior when needed.