macos: "+" button ensures tab is added to same window group

This commit is contained in:
Mitchell Hashimoto
2023-08-04 17:39:40 -07:00
parent bb7c67b967
commit 8c01160afa
2 changed files with 7 additions and 5 deletions

View File

@ -12,10 +12,8 @@ class PrimaryWindowController: NSWindowController {
// This is required for the "+" button to show up in the tab bar to add a // This is required for the "+" button to show up in the tab bar to add a
// new tab. // new tab.
override func newWindowForTab(_ sender: Any?) { override func newWindowForTab(_ sender: Any?) {
// TODO: specify our window so the tab is created in the proper window guard let window = self.window else { preconditionFailure("Expected window to be loaded") }
// guard let window = self.window else { preconditionFailure("Expected window to be loaded") }
guard let manager = self.windowManager else { return } guard let manager = self.windowManager else { return }
manager.addNewTab() manager.addNewTab(to: window)
} }
} }

View File

@ -48,9 +48,13 @@ class PrimaryWindowManager {
func addNewTab() { func addNewTab() {
guard let existingWindow = mainWindow() else { return } guard let existingWindow = mainWindow() else { return }
addNewTab(to: existingWindow)
}
func addNewTab(to window: NSWindow) {
guard let controller = createWindowController() else { return } guard let controller = createWindowController() else { return }
guard let newWindow = addManagedWindow(windowController: controller)?.window else { return } guard let newWindow = addManagedWindow(windowController: controller)?.window else { return }
existingWindow.addTabbedWindow(newWindow, ordered: .above) window.addTabbedWindow(newWindow, ordered: .above)
newWindow.makeKeyAndOrderFront(nil) newWindow.makeKeyAndOrderFront(nil)
} }