commits
WindowInfo.== only compared windowID, so SwiftUI's ForEach diffing
skipped re-rendering when Phase 2 captured fresh thumbnails with the
same window ID. Adding CGImage pointer comparison (===) lets SwiftUI
detect the thumbnail change.
- DragState model + drag-aware ClickHandlerView with 5pt threshold
- AccessibilityBridge.moveWindow via AXUIElement kAXPositionAttribute
- Floating thumbnail window follows cursor during drag
- Drop centers window on target screen, patches frame locally to avoid
CGWindowList race, invalidates layout engines, re-orders panels
- Escape cancels drag without dismissing overlay
- Visual feedback: source thumbnail at 0.3 opacity with dashed border
- DragState model + drag-aware ClickHandlerView with 5pt threshold
- AccessibilityBridge.moveWindow via AXUIElement kAXPositionAttribute
- Floating thumbnail window follows cursor during drag
- Drop centers window on target screen, patches frame locally to avoid
CGWindowList race, invalidates layout engines, re-orders panels
- Escape cancels drag without dismissing overlay
- Visual feedback: source thumbnail at 0.3 opacity with dashed border