diff --git a/macos/Sources/Features/Terminal/TerminalController.swift b/macos/Sources/Features/Terminal/TerminalController.swift index 40fe3ffe31..ddc459c5bc 100644 --- a/macos/Sources/Features/Terminal/TerminalController.swift +++ b/macos/Sources/Features/Terminal/TerminalController.swift @@ -85,6 +85,12 @@ class TerminalController: BaseTerminalController { selector: #selector(onFrameDidChange), name: NSView.frameDidChangeNotification, object: nil) + center.addObserver( + self, + selector: #selector(onEqualizeSplits), + name: Ghostty.Notification.didEqualizeSplits, + object: nil + ) } required init?(coder: NSCoder) { @@ -859,6 +865,17 @@ class TerminalController: BaseTerminalController { toggleFullscreen(mode: fullscreenMode) } + @objc private func onEqualizeSplits(_ notification: Notification) { + guard let target = notification.object as? Ghostty.SurfaceView else { return } + + // Check if target surface is in current controller's tree + guard surfaceTree?.contains(view: target) ?? false else { return } + + if case .split(let container) = surfaceTree { + _ = container.equalize() + } + } + struct DerivedConfig { let backgroundColor: Color let macosTitlebarStyle: String diff --git a/macos/Sources/Ghostty/Ghostty.TerminalSplit.swift b/macos/Sources/Ghostty/Ghostty.TerminalSplit.swift index cec1782459..127c925e1d 100644 --- a/macos/Sources/Ghostty/Ghostty.TerminalSplit.swift +++ b/macos/Sources/Ghostty/Ghostty.TerminalSplit.swift @@ -50,7 +50,6 @@ extension Ghostty { var body: some View { let center = NotificationCenter.default let pubZoom = center.publisher(for: Notification.didToggleSplitZoom) - let pubEqualize = center.publisher(for: Notification.didEqualizeSplits) // If we're zoomed, we don't render anything, we are transparent. This // ensures that the View stays around so we don't lose our state, but @@ -76,7 +75,6 @@ extension Ghostty { container: container ) .onReceive(pubZoom) { onZoom(notification: $0) } - .onReceive(pubEqualize) { onEqualize(notification: $0) } } } .navigationTitle(surfaceTitle ?? "Ghostty") @@ -137,11 +135,6 @@ extension Ghostty { } } } - - func onEqualize(notification: SwiftUI.Notification) { - guard case .split(let c) = node else { return } - _ = c.equalize() - } } /// A noSplit leaf node of a split tree.