macos: quick terminal can equalize splits

Fixes #7480
pull/7486/head
Mitchell Hashimoto 2025-05-30 15:05:53 -07:00
parent 157f50e2de
commit fd7132db71
No known key found for this signature in database
GPG Key ID: 523D5DC389D273BC
2 changed files with 16 additions and 16 deletions

View File

@ -124,6 +124,11 @@ class BaseTerminalController: NSWindowController,
selector: #selector(ghosttyMaximizeDidToggle(_:)), selector: #selector(ghosttyMaximizeDidToggle(_:)),
name: .ghosttyMaximizeDidToggle, name: .ghosttyMaximizeDidToggle,
object: nil) object: nil)
center.addObserver(
self,
selector: #selector(ghosttyDidEqualizeSplits(_:)),
name: Ghostty.Notification.didEqualizeSplits,
object: nil)
// Listen for local events that we need to know of outside of // Listen for local events that we need to know of outside of
// single surface handlers. // single surface handlers.
@ -250,6 +255,17 @@ class BaseTerminalController: NSWindowController,
window.zoom(nil) window.zoom(nil)
} }
@objc private func ghosttyDidEqualizeSplits(_ 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()
}
}
// MARK: Local Events // MARK: Local Events
private func localEventHandler(_ event: NSEvent) -> NSEvent? { private func localEventHandler(_ event: NSEvent) -> NSEvent? {

View File

@ -85,12 +85,6 @@ class TerminalController: BaseTerminalController {
selector: #selector(onFrameDidChange), selector: #selector(onFrameDidChange),
name: NSView.frameDidChangeNotification, name: NSView.frameDidChangeNotification,
object: nil) object: nil)
center.addObserver(
self,
selector: #selector(onEqualizeSplits),
name: Ghostty.Notification.didEqualizeSplits,
object: nil
)
center.addObserver( center.addObserver(
self, self,
selector: #selector(onCloseWindow), selector: #selector(onCloseWindow),
@ -875,16 +869,6 @@ class TerminalController: BaseTerminalController {
toggleFullscreen(mode: fullscreenMode) 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 { struct DerivedConfig {
let backgroundColor: Color let backgroundColor: Color