macOS: simplify code for new tab

This commit is contained in:
Thorsten Ball
2023-08-18 06:19:54 +02:00
parent 3e7c4475a1
commit 12311e9707
2 changed files with 7 additions and 12 deletions

View File

@ -14,6 +14,6 @@ class PrimaryWindowController: NSWindowController {
override func newWindowForTab(_ sender: Any?) { override func newWindowForTab(_ sender: Any?) {
guard let window = self.window as? PrimaryWindow else { preconditionFailure("Expected window to be loaded") } guard let window = self.window as? PrimaryWindow else { preconditionFailure("Expected window to be loaded") }
guard let manager = self.windowManager else { return } guard let manager = self.windowManager else { return }
manager.newTabForWindow(window: window) manager.triggerNewTab(for: window)
} }
} }

View File

@ -78,15 +78,16 @@ class PrimaryWindowManager {
newWindow.makeKeyAndOrderFront(nil) newWindow.makeKeyAndOrderFront(nil)
} }
func newTabForWindow(window: PrimaryWindow) { // triggerNewTab tells the Zig core code to create a new tab, which then calls
// back into Swift code.
func triggerNewTab(for window: PrimaryWindow) {
guard let surface = window.focusedSurfaceWrapper.surface else { return } guard let surface = window.focusedSurfaceWrapper.surface else { return }
ghostty.newTab(surface: surface) ghostty.newTab(surface: surface)
} }
func newTab() { func newTab() {
if mainWindow != nil { if let window = mainWindow as? PrimaryWindow {
guard let window = mainWindow as? PrimaryWindow else { return } self.triggerNewTab(for: window)
self.newTabForWindow(window: window)
} else { } else {
self.addNewWindow() self.addNewWindow()
} }
@ -99,13 +100,7 @@ class PrimaryWindowManager {
let fontSizeAny = notification.userInfo?[Ghostty.Notification.NewTabKey] let fontSizeAny = notification.userInfo?[Ghostty.Notification.NewTabKey]
let fontSize = fontSizeAny as? UInt8 let fontSize = fontSizeAny as? UInt8
if fontSize != nil { self.addNewTab(to: window, withFontSize: fontSize)
// Add the new tab to the window with the given font size.
self.addNewTab(to: window, withFontSize: fontSize)
} else {
// No font size specified, just add new tab.
self.addNewTab(to: window)
}
} }
private func addNewTab(to window: NSWindow, withFontSize fontSize: UInt8? = nil) { private func addNewTab(to window: NSWindow, withFontSize fontSize: UInt8? = nil) {