diff --git a/CodeEdit.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/CodeEdit.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index ce4215548..7790485df 100644 --- a/CodeEdit.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/CodeEdit.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -1,5 +1,5 @@ { - "originHash" : "3f6921a5ec30d1ecb6d6b205cf27a816c318246bb00f0ea367b997cc66527d32", + "originHash" : "41fcbec1ecbb7853d9ead798bba9d46f35f28767f4d41a009c8eeee022e99a84", "pins" : [ { "identity" : "anycodable", @@ -85,7 +85,7 @@ { "identity" : "logstream", "kind" : "remoteSourceControl", - "location" : "https://github.com/CodeEditApp/LogStream", + "location" : "https://github.com/Wouter01/LogStream", "state" : { "revision" : "6f83694b2675dcf3b1cea0a52546ff4469c18282", "version" : "1.3.0" diff --git a/CodeEdit/Features/SplitView/Views/SplitView.swift b/CodeEdit/Features/SplitView/Views/SplitView.swift index e16d45e42..75741cb99 100644 --- a/CodeEdit/Features/SplitView/Views/SplitView.swift +++ b/CodeEdit/Features/SplitView/Views/SplitView.swift @@ -10,9 +10,11 @@ import SwiftUI struct SplitView: View { var axis: Axis var content: Content + var showDividers: Bool = false - init(axis: Axis, @ViewBuilder content: () -> Content) { + init(axis: Axis, showDividers: Bool = false, @ViewBuilder content: () -> Content) { self.axis = axis + self.showDividers = showDividers self.content = content() } @@ -21,7 +23,7 @@ struct SplitView: View { var body: some View { VStack { content.variadic { children in - SplitViewControllerView(axis: axis, children: children, viewController: $viewController) + SplitViewControllerView(axis: axis, children: children, showDividers: showDividers, viewController: $viewController) } } ._trait(SplitViewControllerLayoutValueKey.self, viewController) diff --git a/CodeEdit/Features/SplitView/Views/SplitViewControllerView.swift b/CodeEdit/Features/SplitView/Views/SplitViewControllerView.swift index 66b8b157d..9d24ef922 100644 --- a/CodeEdit/Features/SplitView/Views/SplitViewControllerView.swift +++ b/CodeEdit/Features/SplitView/Views/SplitViewControllerView.swift @@ -11,6 +11,7 @@ struct SplitViewControllerView: NSViewControllerRepresentable { var axis: Axis var children: _VariadicView.Children + var showDividers: Bool @Binding var viewController: () -> SplitViewController? func makeNSViewController(context: Context) -> SplitViewController { @@ -61,7 +62,7 @@ struct SplitViewControllerView: NSViewControllerRepresentable { } func makeCoordinator() -> SplitViewController { - SplitViewController(parent: self, axis: axis) + SplitViewController(parent: self, axis: axis, showDividers: showDividers) } } @@ -70,10 +71,12 @@ final class SplitViewController: NSSplitViewController { var items: [SplitViewItem] = [] var axis: Axis var parentView: SplitViewControllerView + var showDividers: Bool - init(parent: SplitViewControllerView, axis: Axis = .horizontal) { + init(parent: SplitViewControllerView, axis: Axis = .horizontal, showDividers: Bool = true) { self.axis = axis self.parentView = parent + self.showDividers = showDividers super.init(nibName: nil, bundle: nil) } @@ -95,6 +98,24 @@ final class SplitViewController: NSSplitViewController { false } + override func splitView( + _ splitView: NSSplitView, + effectiveRect proposedEffectiveRect: NSRect, + forDrawnRect drawnRect: NSRect, + ofDividerAt dividerIndex: Int + ) -> NSRect { + if showDividers { + super.splitView( + splitView, + effectiveRect: proposedEffectiveRect, + forDrawnRect: drawnRect, + ofDividerAt: dividerIndex + ) + } else { + .zero + } + } + func collapse(for id: AnyHashable, enabled: Bool) { items.first { $0.id == id }?.item.animator().isCollapsed = enabled } diff --git a/CodeEdit/Features/StatusBar/Views/StatusBarView.swift b/CodeEdit/Features/StatusBar/Views/StatusBarView.swift index a40f4d953..c224c975d 100644 --- a/CodeEdit/Features/StatusBar/Views/StatusBarView.swift +++ b/CodeEdit/Features/StatusBar/Views/StatusBarView.swift @@ -59,9 +59,10 @@ struct StatusBarView: View { /// A drag gesture to resize the drawer beneath the status bar private var dragGesture: some Gesture { - DragGesture(coordinateSpace: .global) + return DragGesture.init(coordinateSpace: .global) .onChanged { value in - proxy.setPosition(of: 0, position: value.location.y + Self.height / 2) + proxy.setPosition(of: 0, position: value.location.y - Self.height / 2) + proxy.setPosition(of: 1, position: value.location.y + Self.height / 2) } } } diff --git a/CodeEdit/WorkspaceView.swift b/CodeEdit/WorkspaceView.swift index b2649facc..8c4fe707b 100644 --- a/CodeEdit/WorkspaceView.swift +++ b/CodeEdit/WorkspaceView.swift @@ -35,7 +35,7 @@ struct WorkspaceView: View { if workspace.workspaceFileManager != nil { VStack { SplitViewReader { proxy in - SplitView(axis: .vertical) { + SplitView(axis: .vertical, showDividers: false) { EditorLayoutView( layout: editorManager.isFocusingActiveEditor ? editorManager.activeEditor.getEditorLayout() ?? editorManager.editorLayout @@ -46,10 +46,9 @@ struct WorkspaceView: View { .collapsed($utilityAreaViewModel.isMaximized) .frame(minHeight: 170 + 29 + 29) .frame(maxWidth: .infinity, maxHeight: .infinity) - .holdingPriority(.init(1)) - .safeAreaInset(edge: .bottom, spacing: 0) { - StatusBarView(proxy: proxy) - } + + StatusBarView(proxy: proxy) + UtilityAreaView() .collapsable() .collapsed($utilityAreaViewModel.isCollapsed)