Files
ghostty/macos/Sources/Features/About/AboutController.swift
Lukas a79557f521 macOS: stop cycling icons when AboutWindow is closed
and start cycling with current icon
2026-02-24 08:58:15 +01:00

48 lines
1.1 KiB
Swift

import Foundation
import Cocoa
import SwiftUI
class AboutController: NSWindowController, NSWindowDelegate {
static let shared: AboutController = AboutController()
private let viewModel = AboutViewModel()
override var windowNibName: NSNib.Name? { "About" }
override func windowDidLoad() {
guard let window = window else { return }
window.center()
window.isMovableByWindowBackground = true
window.contentView = NSHostingView(rootView: AboutView().environmentObject(viewModel))
}
// MARK: - Functions
func show() {
window?.makeKeyAndOrderFront(nil)
viewModel.startCyclingIcons()
}
func hide() {
window?.close()
}
// MARK: - First Responder
@IBAction func close(_ sender: Any) {
self.window?.performClose(sender)
}
@IBAction func closeWindow(_ sender: Any) {
self.window?.performClose(sender)
}
// This is called when "escape" is pressed.
@objc func cancel(_ sender: Any?) {
close()
}
func windowWillClose(_ notification: Notification) {
viewModel.stopCyclingIcons()
}
}