mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-08-02 14:57:31 +03:00
macOS: weak self for event monitor to avoid retain cycle for controllers
Fixes #3219 We were holding a reference cycle to the base terminal controller. This was preventing the window from ever being fully deallocated.
This commit is contained in:

committed by
Jonathan Lopez

parent
c2223cd928
commit
3cb197549c
@ -111,8 +111,8 @@ class BaseTerminalController: NSWindowController,
|
|||||||
// 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.
|
||||||
self.eventMonitor = NSEvent.addLocalMonitorForEvents(
|
self.eventMonitor = NSEvent.addLocalMonitorForEvents(
|
||||||
matching: [.flagsChanged],
|
matching: [.flagsChanged]
|
||||||
handler: localEventHandler)
|
) { [weak self] event in self?.localEventHandler(event) }
|
||||||
}
|
}
|
||||||
|
|
||||||
deinit {
|
deinit {
|
||||||
@ -160,7 +160,7 @@ class BaseTerminalController: NSWindowController,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// MARK: Notifications
|
// MARK: Notifications
|
||||||
|
|
||||||
@objc private func didChangeScreenParametersNotification(_ notification: Notification) {
|
@objc private func didChangeScreenParametersNotification(_ notification: Notification) {
|
||||||
// If we have a window that is visible and it is outside the bounds of the
|
// If we have a window that is visible and it is outside the bounds of the
|
||||||
// screen then we clamp it back to within the screen.
|
// screen then we clamp it back to within the screen.
|
||||||
|
Reference in New Issue
Block a user