mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-08-02 14:57:31 +03:00
macos: Address window spawning and ordering issues from service.
This commit is contained in:
@ -104,12 +104,6 @@ class AppDelegate: NSObject,
|
||||
// Initial config loading
|
||||
configDidReload(ghostty)
|
||||
|
||||
// Let's launch our first window. We only do this if we have no other windows. It
|
||||
// is possible to have other windows if we're opening a URL since `application(_:openFile:)`
|
||||
// is called before this.
|
||||
if (terminalManager.windows.count == 0) {
|
||||
terminalManager.newWindow()
|
||||
}
|
||||
|
||||
// Register our service provider. This must happen after everything
|
||||
// else is initialized.
|
||||
@ -132,6 +126,18 @@ class AppDelegate: NSObject,
|
||||
center.delegate = self
|
||||
}
|
||||
|
||||
func applicationDidBecomeActive(_ notification: Notification) {
|
||||
// Let's launch our first window. We only do this if we have no other windows. It
|
||||
// is possible to have other windows if we're opening a URL since `application(_:openFile:)`
|
||||
// is called before this.
|
||||
if (ghostty.firstLaunch) {
|
||||
if terminalManager.windows.count == 0 {
|
||||
terminalManager.newWindow()
|
||||
}
|
||||
ghostty.firstLaunch = false
|
||||
}
|
||||
}
|
||||
|
||||
func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
|
||||
return ghostty.shouldQuitAfterLastWindowClosed
|
||||
}
|
||||
|
@ -33,8 +33,8 @@ class TerminalManager {
|
||||
}
|
||||
}
|
||||
|
||||
// If we have no main window, just use the first window.
|
||||
return windows.first
|
||||
// If we have no main window, just use the last window.
|
||||
return windows.last
|
||||
}
|
||||
|
||||
init(_ ghostty: Ghostty.AppState) {
|
||||
|
@ -36,6 +36,9 @@ extension Ghostty {
|
||||
/// Optional delegate
|
||||
weak var delegate: GhosttyAppStateDelegate?
|
||||
|
||||
/// True when application is first launched. Immidiately set to false after first window is shown.
|
||||
var firstLaunch: Bool = true
|
||||
|
||||
/// The ghostty global configuration. This should only be changed when it is definitely
|
||||
/// safe to change. It is definite safe to change only when the embedded app runtime
|
||||
/// in Ghostty says so (usually, only in a reload configuration callback).
|
||||
|
Reference in New Issue
Block a user