When sibling.hitTest() triggers a SwiftUI layout pass during the drag handle's sibling walk, AppKit can call back into windowDragHandleShouldCaptureHit before the outer invocation finishes. This re-entry accesses SwiftUI view state that is already held exclusively, causing a Swift runtime SIGABRT. Add a module-level re-entrancy guard that bails out (returns false) on nested calls to the sibling walk. Since hitTest is always called on the main thread, a simple Bool flag is sufficient. Crash was reproduced on macOS Sequoia 15.1.1 (24B91) in a UTM VM. The crash stack: DraggableView.hitTest -> windowDragHandleShouldCaptureHit -> sibling.hitTest -> SwiftUI body evaluation -> hitTest (re-entry) -> exclusive-access violation -> SIGABRT. |
||
|---|---|---|
| .. | ||
| AppDelegateShortcutRoutingTests.swift | ||
| CJKIMEInputTests.swift | ||
| CmuxWebViewKeyEquivalentTests.swift | ||
| GhosttyConfigTests.swift | ||
| SessionPersistenceTests.swift | ||
| SocketControlPasswordStoreTests.swift | ||
| UpdatePillReleaseVisibilityTests.swift | ||
| WorkspaceContentViewVisibilityTests.swift | ||
| WorkspaceManualUnreadTests.swift | ||