diff --git a/Sources/Bonsplit/Internal/Views/SplitContainerView.swift b/Sources/Bonsplit/Internal/Views/SplitContainerView.swift index b7a78fc..67cb4db 100644 --- a/Sources/Bonsplit/Internal/Views/SplitContainerView.swift +++ b/Sources/Bonsplit/Internal/Views/SplitContainerView.swift @@ -11,6 +11,18 @@ private class ThemedSplitView: NSSplitView { } override var isOpaque: Bool { false } + + // NSSplitView's default `mouseDownCanMoveWindow` reports `true` whenever it + // appears opaque to AppKit, and even with `isOpaque=false` AppKit can + // promote it back to draggable when nested inside a non-titlebar window. + // In `presentationMode == "minimal"` (no titlebar drag region), AppKit was + // treating mouseDowns inside the LEFT pane of a horizontal split as window + // drag intents and consuming the mouseUp before SwiftUI's tap gesture + // could fire on tab items. Forcing `false` here keeps the entire pane + // hosting chain non-draggable so SwiftUI gestures get every click. + // See `NonDraggableHostingView` in SplitNodeView.swift for the rest of + // the chain. + override var mouseDownCanMoveWindow: Bool { false } } #if DEBUG