mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-07-14 15:56:13 +03:00
macos: fix retain cycle preventing window from freeing (#4689)
This commit is contained in:
@ -428,8 +428,8 @@ class AppDelegate: NSObject,
|
|||||||
// If this event as-is would result in a key binding then we send it.
|
// If this event as-is would result in a key binding then we send it.
|
||||||
if let app = ghostty.app,
|
if let app = ghostty.app,
|
||||||
ghostty_app_key_is_binding(
|
ghostty_app_key_is_binding(
|
||||||
app,
|
app,
|
||||||
event.ghosttyKeyEvent(GHOSTTY_ACTION_PRESS)) {
|
event.ghosttyKeyEvent(GHOSTTY_ACTION_PRESS)) {
|
||||||
ghostty_app_key(app, event.ghosttyKeyEvent(GHOSTTY_ACTION_PRESS))
|
ghostty_app_key(app, event.ghosttyKeyEvent(GHOSTTY_ACTION_PRESS))
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -667,12 +667,16 @@ fileprivate class WindowDragView: NSView {
|
|||||||
|
|
||||||
// A view that matches the color of selected and unselected tabs in the adjacent tab bar.
|
// A view that matches the color of selected and unselected tabs in the adjacent tab bar.
|
||||||
fileprivate class WindowButtonsBackdropView: NSView {
|
fileprivate class WindowButtonsBackdropView: NSView {
|
||||||
private let terminalWindow: TerminalWindow
|
// This must be weak because the window has this view. Otherwise
|
||||||
|
// a retain cycle occurs.
|
||||||
|
private weak var terminalWindow: TerminalWindow?
|
||||||
private let isLightTheme: Bool
|
private let isLightTheme: Bool
|
||||||
private let overlayLayer = VibrantLayer()
|
private let overlayLayer = VibrantLayer()
|
||||||
|
|
||||||
var isHighlighted: Bool = true {
|
var isHighlighted: Bool = true {
|
||||||
didSet {
|
didSet {
|
||||||
|
guard let terminalWindow else { return }
|
||||||
|
|
||||||
if isLightTheme {
|
if isLightTheme {
|
||||||
overlayLayer.isHidden = isHighlighted
|
overlayLayer.isHidden = isHighlighted
|
||||||
layer?.backgroundColor = .clear
|
layer?.backgroundColor = .clear
|
||||||
|
Reference in New Issue
Block a user