Skip to content

Commit 1255659

Browse files
scaredcr6wtom-ludwigaustincondiff
authored
Closing tabs while Open Quickly or Command Palette is open is no longer allowed. (#1868)
* scrolling disabled in the settings sidebar * the searchbar is now pinned to the top of the sidebar * using height instead of maxHeight * Opening Open Quickly or Command Palette will no longer allow closing of editor tabs. * Apply suggestions from code review Co-authored-by: Austin Condiff <austin.condiff@gmail.com> --------- Co-authored-by: Tom Ludwig <tommludwig@icloud.com> Co-authored-by: Austin Condiff <austin.condiff@gmail.com>
1 parent bda9940 commit 1255659

1 file changed

Lines changed: 14 additions & 1 deletion

File tree

CodeEdit/Features/Documents/Controllers/CodeEditWindowController.swift

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ final class CodeEditWindowController: NSWindowController, NSToolbarDelegate, Obs
1414
@Published var inspectorCollapsed = false
1515
@Published var toolbarCollapsed = false
1616

17+
private var panelOpen = false
18+
1719
var observers: [NSKeyValueObservation] = []
1820

1921
var workspace: WorkspaceDocument?
@@ -109,20 +111,26 @@ final class CodeEditWindowController: NSWindowController, NSToolbarDelegate, Obs
109111
if let commandPalettePanel {
110112
if commandPalettePanel.isKeyWindow {
111113
commandPalettePanel.close()
114+
self.panelOpen = false
112115
state.reset()
113116
return
114117
} else {
115118
state.reset()
116119
window?.addChildWindow(commandPalettePanel, ordered: .above)
117120
commandPalettePanel.makeKeyAndOrderFront(self)
121+
self.panelOpen = true
118122
}
119123
} else {
120124
let panel = SearchPanel()
121125
self.commandPalettePanel = panel
122-
let contentView = QuickActionsView(state: state, closePalette: panel.close)
126+
let contentView = QuickActionsView(state: state) {
127+
panel.close()
128+
self.panelOpen = false
129+
}
123130
panel.contentView = NSHostingView(rootView: SettingsInjector { contentView })
124131
window?.addChildWindow(panel, ordered: .above)
125132
panel.makeKeyAndOrderFront(self)
133+
self.panelOpen = true
126134
}
127135
}
128136
}
@@ -132,29 +140,34 @@ final class CodeEditWindowController: NSWindowController, NSToolbarDelegate, Obs
132140
if let quickOpenPanel {
133141
if quickOpenPanel.isKeyWindow {
134142
quickOpenPanel.close()
143+
self.panelOpen = false
135144
return
136145
} else {
137146
window?.addChildWindow(quickOpenPanel, ordered: .above)
138147
quickOpenPanel.makeKeyAndOrderFront(self)
148+
self.panelOpen = true
139149
}
140150
} else {
141151
let panel = SearchPanel()
142152
self.quickOpenPanel = panel
143153

144154
let contentView = OpenQuicklyView(state: state) {
145155
panel.close()
156+
self.panelOpen = false
146157
} openFile: { file in
147158
workspace.editorManager?.openTab(item: file)
148159
}.environmentObject(workspace)
149160

150161
panel.contentView = NSHostingView(rootView: SettingsInjector { contentView })
151162
window?.addChildWindow(panel, ordered: .above)
152163
panel.makeKeyAndOrderFront(self)
164+
self.panelOpen = true
153165
}
154166
}
155167
}
156168

157169
@IBAction func closeCurrentTab(_ sender: Any) {
170+
if self.panelOpen { return }
158171
if (workspace?.editorManager?.activeEditor.tabs ?? []).isEmpty {
159172
self.closeActiveEditor(self)
160173
} else {

0 commit comments

Comments
 (0)