diff --git a/macos/Sources/Features/Terminal/TerminalController.swift b/macos/Sources/Features/Terminal/TerminalController.swift index 40089be15..7070a4867 100644 --- a/macos/Sources/Features/Terminal/TerminalController.swift +++ b/macos/Sources/Features/Terminal/TerminalController.swift @@ -297,9 +297,11 @@ class TerminalController: BaseTerminalController, TabGroupCloseCoordinator.Contr if !window.styleMask.contains(.fullScreen) { let hasFixedPos = c.derivedConfig.windowPositionX != nil && c.derivedConfig.windowPositionY != nil // We're dispatching this async because otherwise the lastCascadePoint doesn't - // take effect. Our best theory is there is some next-event-loop-tick logic - // that Cocoa is doing that we need to be after. - Self.applyCascade(to: window, hasFixedPos: hasFixedPos) + // take effect after positioning in `showWindow`. Our best theory is there is + // some next-event-loop-tick logic that Cocoa is doing that we need to be after. + DispatchQueue.main.async { + Self.applyCascade(to: window, hasFixedPos: hasFixedPos) + } } }