@@ -336,11 +336,13 @@ final class SidebarState: ObservableObject {
336336}
337337
338338enum SidebarResizeInteraction {
339- static let handleWidth: CGFloat = 6
340- static let hitInset: CGFloat = 3
339+ // Keep a generous drag target inside the sidebar itself, but make the
340+ // terminal-side overlap very small so column-0 text selection still wins.
341+ static let sidebarSideHitWidth: CGFloat = 6
342+ static let contentSideHitWidth: CGFloat = 2
341343
342- static var hitWidthPerSide : CGFloat {
343- hitInset + (handleWidth / 2)
344+ static var totalHitWidth : CGFloat {
345+ sidebarSideHitWidth + contentSideHitWidth
344346 }
345347}
346348
@@ -1788,8 +1790,12 @@ struct ContentView: View {
17881790 case divider
17891791 }
17901792
1791- private var sidebarResizerHitWidthPerSide: CGFloat {
1792- SidebarResizeInteraction.hitWidthPerSide
1793+ private var sidebarResizerSidebarHitWidth: CGFloat {
1794+ SidebarResizeInteraction.sidebarSideHitWidth
1795+ }
1796+
1797+ private var sidebarResizerContentHitWidth: CGFloat {
1798+ SidebarResizeInteraction.contentSideHitWidth
17931799 }
17941800
17951801 private func maxSidebarWidth(availableWidth: CGFloat? = nil) -> CGFloat {
@@ -1865,8 +1871,8 @@ struct ContentView: View {
18651871
18661872 private func dividerBandContains(pointInContent point: NSPoint, contentBounds: NSRect) -> Bool {
18671873 guard point.y >= contentBounds.minY, point.y <= contentBounds.maxY else { return false }
1868- let minX = sidebarWidth - sidebarResizerHitWidthPerSide
1869- let maxX = sidebarWidth + sidebarResizerHitWidthPerSide
1874+ let minX = sidebarWidth - sidebarResizerSidebarHitWidth
1875+ let maxX = sidebarWidth + sidebarResizerContentHitWidth
18701876 return point.x >= minX && point.x <= maxX
18711877 }
18721878
@@ -2046,7 +2052,7 @@ struct ContentView: View {
20462052 GeometryReader { proxy in
20472053 let totalWidth = max(0, proxy.size.width)
20482054 let dividerX = min(max(sidebarWidth, 0), totalWidth)
2049- let leadingWidth = max(0, dividerX - sidebarResizerHitWidthPerSide )
2055+ let leadingWidth = max(0, dividerX - sidebarResizerSidebarHitWidth )
20502056
20512057 HStack(spacing: 0) {
20522058 Color.clear
@@ -2055,7 +2061,7 @@ struct ContentView: View {
20552061
20562062 sidebarResizerHandleOverlay(
20572063 .divider,
2058- width: sidebarResizerHitWidthPerSide * 2 ,
2064+ width: SidebarResizeInteraction.totalHitWidth ,
20592065 availableWidth: totalWidth,
20602066 accessibilityIdentifier: "SidebarResizer"
20612067 )
0 commit comments