fix: crash when tray is destroyed (#14365)

Release the view of status item before destroying it,
gives chance to perform cleanup on the view.
This commit is contained in:
trop[bot]
2018-08-28 23:13:44 -07:00
committed by Shelley Vohr
parent b0a70d4aae
commit 23f698a4e1

View File

@@ -36,9 +36,16 @@ const CGFloat kVerticalTitleMargin = 2;
@implementation StatusItemView
- (void)dealloc {
trayIcon_ = nil;
menuController_ = nil;
[super dealloc];
}
- (id)initWithImage:(NSImage*)image icon:(atom::TrayIconCocoa*)icon {
image_.reset([image copy]);
trayIcon_ = icon;
menuController_ = nil;
highlight_mode_ = atom::TrayIcon::HighlightMode::SELECTION;
forceHighlight_ = NO;
inMouseEventSequence_ = NO;
@@ -76,6 +83,7 @@ const CGFloat kVerticalTitleMargin = 2;
- (void)removeItem {
[[NSStatusBar systemStatusBar] removeStatusItem:statusItem_];
[statusItem_ setView:nil];
statusItem_.reset();
}