From c85e76a5b18f1d66ccc5cae28d6478bfd4443b8b Mon Sep 17 00:00:00 2001 From: Levente Anda <85457088+scaredcr6w@users.noreply.github.com> Date: Wed, 21 Aug 2024 14:17:21 +0200 Subject: [PATCH 1/5] scrolling disabled in the settings sidebar --- CodeEdit/Features/Settings/SettingsView.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/CodeEdit/Features/Settings/SettingsView.swift b/CodeEdit/Features/Settings/SettingsView.swift index 58c7c15eda..4207597b5b 100644 --- a/CodeEdit/Features/Settings/SettingsView.swift +++ b/CodeEdit/Features/Settings/SettingsView.swift @@ -152,6 +152,7 @@ struct SettingsView: View { } } .searchable(text: $searchText, placement: .sidebar, prompt: "Search") + .scrollDisabled(true) .navigationSplitViewColumnWidth(215) } detail: { Group { From df6b43573e9dc1fc8fb05cf483e75c35332cfded Mon Sep 17 00:00:00 2001 From: Levente Anda <85457088+scaredcr6w@users.noreply.github.com> Date: Wed, 21 Aug 2024 15:29:29 +0200 Subject: [PATCH 2/5] the searchbar is now pinned to the top of the sidebar --- CodeEdit/Features/Settings/SettingsView.swift | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/CodeEdit/Features/Settings/SettingsView.swift b/CodeEdit/Features/Settings/SettingsView.swift index 4207597b5b..6a0857b28f 100644 --- a/CodeEdit/Features/Settings/SettingsView.swift +++ b/CodeEdit/Features/Settings/SettingsView.swift @@ -144,6 +144,10 @@ struct SettingsView: View { var body: some View { NavigationSplitView { + List { } + .searchable(text: $searchText, placement: .sidebar, prompt: "Search") + .scrollDisabled(true) + .frame(maxHeight: 30) List(selection: $selectedPage) { Section { ForEach(Self.pages) { pageAndSettings in @@ -151,8 +155,6 @@ struct SettingsView: View { } } } - .searchable(text: $searchText, placement: .sidebar, prompt: "Search") - .scrollDisabled(true) .navigationSplitViewColumnWidth(215) } detail: { Group { From 4b497a62475749eac01a59dddeba6a8fdf4fb24b Mon Sep 17 00:00:00 2001 From: Levente Anda <85457088+scaredcr6w@users.noreply.github.com> Date: Wed, 21 Aug 2024 15:48:00 +0200 Subject: [PATCH 3/5] using height instead of maxHeight --- CodeEdit/Features/Settings/SettingsView.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CodeEdit/Features/Settings/SettingsView.swift b/CodeEdit/Features/Settings/SettingsView.swift index 6a0857b28f..d7e7ef766e 100644 --- a/CodeEdit/Features/Settings/SettingsView.swift +++ b/CodeEdit/Features/Settings/SettingsView.swift @@ -147,7 +147,7 @@ struct SettingsView: View { List { } .searchable(text: $searchText, placement: .sidebar, prompt: "Search") .scrollDisabled(true) - .frame(maxHeight: 30) + .frame(height: 30) List(selection: $selectedPage) { Section { ForEach(Self.pages) { pageAndSettings in From 139227f4744dac1f3d601435cfbb74112934d70c Mon Sep 17 00:00:00 2001 From: Levente Anda <85457088+scaredcr6w@users.noreply.github.com> Date: Tue, 27 Aug 2024 11:56:09 +0200 Subject: [PATCH 4/5] Opening Open Quickly or Command Palette will no longer allow closing of editor tabs. --- .../Controllers/CodeEditWindowController.swift | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/CodeEdit/Features/Documents/Controllers/CodeEditWindowController.swift b/CodeEdit/Features/Documents/Controllers/CodeEditWindowController.swift index f86fee6415..053a22fc16 100644 --- a/CodeEdit/Features/Documents/Controllers/CodeEditWindowController.swift +++ b/CodeEdit/Features/Documents/Controllers/CodeEditWindowController.swift @@ -14,6 +14,8 @@ final class CodeEditWindowController: NSWindowController, NSToolbarDelegate, Obs @Published var inspectorCollapsed = false @Published var toolbarCollapsed = false + private var modalOpen = false + var observers: [NSKeyValueObservation] = [] var workspace: WorkspaceDocument? @@ -109,20 +111,26 @@ final class CodeEditWindowController: NSWindowController, NSToolbarDelegate, Obs if let commandPalettePanel { if commandPalettePanel.isKeyWindow { commandPalettePanel.close() + self.modalOpen = false state.reset() return } else { state.reset() window?.addChildWindow(commandPalettePanel, ordered: .above) commandPalettePanel.makeKeyAndOrderFront(self) + self.modalOpen = true } } else { let panel = SearchPanel() self.commandPalettePanel = panel - let contentView = QuickActionsView(state: state, closePalette: panel.close) + let contentView = QuickActionsView(state: state) { + panel.close() + self.modalOpen = false + } panel.contentView = NSHostingView(rootView: SettingsInjector { contentView }) window?.addChildWindow(panel, ordered: .above) panel.makeKeyAndOrderFront(self) + self.modalOpen = true } } } @@ -132,10 +140,12 @@ final class CodeEditWindowController: NSWindowController, NSToolbarDelegate, Obs if let quickOpenPanel { if quickOpenPanel.isKeyWindow { quickOpenPanel.close() + self.modalOpen = false return } else { window?.addChildWindow(quickOpenPanel, ordered: .above) quickOpenPanel.makeKeyAndOrderFront(self) + self.modalOpen = true } } else { let panel = SearchPanel() @@ -143,6 +153,7 @@ final class CodeEditWindowController: NSWindowController, NSToolbarDelegate, Obs let contentView = OpenQuicklyView(state: state) { panel.close() + self.modalOpen = false } openFile: { file in workspace.editorManager?.openTab(item: file) }.environmentObject(workspace) @@ -150,11 +161,13 @@ final class CodeEditWindowController: NSWindowController, NSToolbarDelegate, Obs panel.contentView = NSHostingView(rootView: SettingsInjector { contentView }) window?.addChildWindow(panel, ordered: .above) panel.makeKeyAndOrderFront(self) + self.modalOpen = true } } } @IBAction func closeCurrentTab(_ sender: Any) { + if self.modalOpen { return } if (workspace?.editorManager?.activeEditor.tabs ?? []).isEmpty { self.closeActiveEditor(self) } else { From 0c76248db5edd6c9d296940369eb7f26cd10783c Mon Sep 17 00:00:00 2001 From: Tom Ludwig Date: Sat, 28 Sep 2024 16:32:26 +0200 Subject: [PATCH 5/5] Apply suggestions from code review Co-authored-by: Austin Condiff --- .../CodeEditWindowController.swift | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/CodeEdit/Features/Documents/Controllers/CodeEditWindowController.swift b/CodeEdit/Features/Documents/Controllers/CodeEditWindowController.swift index 053a22fc16..c3ee61af47 100644 --- a/CodeEdit/Features/Documents/Controllers/CodeEditWindowController.swift +++ b/CodeEdit/Features/Documents/Controllers/CodeEditWindowController.swift @@ -14,7 +14,7 @@ final class CodeEditWindowController: NSWindowController, NSToolbarDelegate, Obs @Published var inspectorCollapsed = false @Published var toolbarCollapsed = false - private var modalOpen = false + private var panelOpen = false var observers: [NSKeyValueObservation] = [] @@ -111,26 +111,26 @@ final class CodeEditWindowController: NSWindowController, NSToolbarDelegate, Obs if let commandPalettePanel { if commandPalettePanel.isKeyWindow { commandPalettePanel.close() - self.modalOpen = false + self.panelOpen = false state.reset() return } else { state.reset() window?.addChildWindow(commandPalettePanel, ordered: .above) commandPalettePanel.makeKeyAndOrderFront(self) - self.modalOpen = true + self.panelOpen = true } } else { let panel = SearchPanel() self.commandPalettePanel = panel let contentView = QuickActionsView(state: state) { panel.close() - self.modalOpen = false + self.panelOpen = false } panel.contentView = NSHostingView(rootView: SettingsInjector { contentView }) window?.addChildWindow(panel, ordered: .above) panel.makeKeyAndOrderFront(self) - self.modalOpen = true + self.panelOpen = true } } } @@ -140,12 +140,12 @@ final class CodeEditWindowController: NSWindowController, NSToolbarDelegate, Obs if let quickOpenPanel { if quickOpenPanel.isKeyWindow { quickOpenPanel.close() - self.modalOpen = false + self.panelOpen = false return } else { window?.addChildWindow(quickOpenPanel, ordered: .above) quickOpenPanel.makeKeyAndOrderFront(self) - self.modalOpen = true + self.panelOpen = true } } else { let panel = SearchPanel() @@ -153,7 +153,7 @@ final class CodeEditWindowController: NSWindowController, NSToolbarDelegate, Obs let contentView = OpenQuicklyView(state: state) { panel.close() - self.modalOpen = false + self.panelOpen = false } openFile: { file in workspace.editorManager?.openTab(item: file) }.environmentObject(workspace) @@ -161,13 +161,13 @@ final class CodeEditWindowController: NSWindowController, NSToolbarDelegate, Obs panel.contentView = NSHostingView(rootView: SettingsInjector { contentView }) window?.addChildWindow(panel, ordered: .above) panel.makeKeyAndOrderFront(self) - self.modalOpen = true + self.panelOpen = true } } } @IBAction func closeCurrentTab(_ sender: Any) { - if self.modalOpen { return } + if self.panelOpen { return } if (workspace?.editorManager?.activeEditor.tabs ?? []).isEmpty { self.closeActiveEditor(self) } else {