Skip to content

Commit fa94af1

Browse files
authored
Fix for background color of toolbar in inspector (#1155)
* Fix for background color of toolbar in inspector Signed-off-by: Wouter01 <[email protected]> * Fixed warning Signed-off-by: Wouter01 <[email protected]> * renamed fixInspectorToolbarBackground to hideInspectorToolbarBackground Signed-off-by: Wouter01 <[email protected]> --------- Signed-off-by: Wouter01 <[email protected]>
1 parent 76618e4 commit fa94af1

File tree

4 files changed

+53
-37
lines changed

4 files changed

+53
-37
lines changed

CodeEdit/Features/Documents/Controllers/CodeEditSplitViewController.swift

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ final class CodeEditSplitViewController: NSSplitViewController {
8585

8686
override func viewDidAppear() {
8787
viewIsReady = true
88+
hideInspectorToolbarBackground()
8889
}
8990

9091
// MARK: - NSSplitViewDelegate
@@ -163,4 +164,15 @@ final class CodeEditSplitViewController: NSSplitViewController {
163164
}
164165
view.window?.toolbar?.removeItem(at: index)
165166
}
167+
168+
func hideInspectorToolbarBackground() {
169+
let controller = self.view.window?.perform(Selector(("titlebarViewController"))).takeUnretainedValue()
170+
if let controller = controller as? NSViewController {
171+
let effectViewCount = controller.view.subviews.filter { $0 is NSVisualEffectView }.count
172+
guard effectViewCount > 2 else { return }
173+
if let view = controller.view.subviews[0] as? NSVisualEffectView {
174+
view.isHidden = true
175+
}
176+
}
177+
}
166178
}

CodeEdit/Features/Documents/Controllers/CodeEditWindowController.swift

Lines changed: 34 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,8 @@ final class CodeEditWindowController: NSWindowController, NSToolbarDelegate {
110110
inspector.isCollapsed = true
111111
inspector.canCollapse = true
112112
inspector.collapseBehavior = .useConstraints
113+
inspector.isSpringLoaded = true
114+
113115
splitVC.addSplitViewItem(inspector)
114116

115117
self.splitViewController = splitVC
@@ -222,27 +224,6 @@ final class CodeEditWindowController: NSWindowController, NSToolbarDelegate {
222224
super.windowDidLoad()
223225
}
224226

225-
@objc func toggleFirstPanel() {
226-
guard let firstSplitView = splitViewController.splitViewItems.first else { return }
227-
firstSplitView.animator().isCollapsed.toggle()
228-
if let codeEditSplitVC = splitViewController as? CodeEditSplitViewController {
229-
codeEditSplitVC.saveNavigatorCollapsedState(isCollapsed: firstSplitView.isCollapsed)
230-
}
231-
}
232-
233-
@objc func toggleLastPanel() {
234-
guard let lastSplitView = splitViewController.splitViewItems.last else { return }
235-
lastSplitView.animator().isCollapsed.toggle()
236-
if lastSplitView.isCollapsed {
237-
window?.toolbar?.removeItem(at: 4)
238-
} else {
239-
window?.toolbar?.insertItem(withItemIdentifier: .itemListTrackingSeparator, at: 4)
240-
}
241-
if let codeEditSplitVC = splitViewController as? CodeEditSplitViewController {
242-
codeEditSplitVC.saveInspectorCollapsedState(isCollapsed: lastSplitView.isCollapsed)
243-
}
244-
}
245-
246227
private func getSelectedCodeFile() -> CodeFileDocument? {
247228
workspace?.tabManager.activeTabGroup.selected?.fileDocument
248229
}
@@ -303,6 +284,38 @@ final class CodeEditWindowController: NSWindowController, NSToolbarDelegate {
303284
}
304285
}
305286

287+
extension CodeEditWindowController {
288+
@objc
289+
func toggleFirstPanel() {
290+
guard let firstSplitView = splitViewController.splitViewItems.first else { return }
291+
firstSplitView.animator().isCollapsed.toggle()
292+
if let codeEditSplitVC = splitViewController as? CodeEditSplitViewController {
293+
codeEditSplitVC.saveNavigatorCollapsedState(isCollapsed: firstSplitView.isCollapsed)
294+
}
295+
}
296+
297+
@objc
298+
func toggleLastPanel() {
299+
guard let lastSplitView = splitViewController.splitViewItems.last else { return }
300+
301+
if lastSplitView.isCollapsed {
302+
window?.toolbar?.insertItem(withItemIdentifier: .itemListTrackingSeparator, at: 4)
303+
}
304+
NSAnimationContext.runAnimationGroup { _ in
305+
lastSplitView.animator().isCollapsed.toggle()
306+
} completionHandler: { [weak self] in
307+
if lastSplitView.isCollapsed {
308+
self?.window?.animator().toolbar?.removeItem(at: 4)
309+
}
310+
}
311+
312+
if let codeEditSplitVC = splitViewController as? CodeEditSplitViewController {
313+
codeEditSplitVC.saveInspectorCollapsedState(isCollapsed: lastSplitView.isCollapsed)
314+
codeEditSplitVC.hideInspectorToolbarBackground()
315+
}
316+
}
317+
}
318+
306319
extension NSToolbarItem.Identifier {
307320
static let toggleFirstSidebarItem: NSToolbarItem.Identifier = NSToolbarItem.Identifier("ToggleFirstSidebarItem")
308321
static let toggleLastSidebarItem: NSToolbarItem.Identifier = NSToolbarItem.Identifier("ToggleLastSidebarItem")

CodeEdit/Features/InspectorSidebar/InspectorSidebarToolbarTop.swift

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ struct InspectorSidebarToolbarTop: View {
2727
}
2828

2929
var body: some View {
30-
ScrollView {
30+
VStack(alignment: .center, spacing: 0) {
31+
Divider()
3132
HStack(spacing: 10) {
3233
ForEach(icons) { icon in
3334
makeInspectorIcon(systemImage: icon.imageName, title: icon.title, id: icon.id)
@@ -46,18 +47,11 @@ struct InspectorSidebarToolbarTop: View {
4647
)
4748
}
4849
}
49-
.frame(height: 29, alignment: .center)
50-
.frame(maxWidth: .infinity)
51-
.overlay(alignment: .top) {
52-
Divider()
53-
}
54-
.overlay(alignment: .bottom) {
55-
Divider()
56-
}
50+
.frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .center)
5751
.animation(.default, value: icons)
52+
Divider()
5853
}
59-
.frame(height: 32, alignment: .center)
60-
.frame(maxWidth: .infinity)
54+
.frame(height: TabBarView.height)
6155
}
6256

6357
func makeInspectorIcon(systemImage: String, title: String, id: Int) -> some View {

CodeEdit/Features/InspectorSidebar/InspectorSidebarView.swift

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,9 @@ struct InspectorSidebarView: View {
5252
maxHeight: .infinity,
5353
alignment: .top
5454
)
55-
.safeAreaInset(edge: .top) {
55+
.safeAreaInset(edge: .top, spacing: 0) {
5656
InspectorSidebarToolbarTop(selection: $selection)
57-
.padding(.bottom, -8)
57+
.background(.ultraThinMaterial)
5858
}
59-
.background(
60-
EffectView(.windowBackground, blendingMode: .withinWindow)
61-
)
6259
}
6360
}

0 commit comments

Comments
 (0)