Skip to content

Commit ade70c3

Browse files
authored
fix: resolve memory leak issue when update menu on macOS (#66)
1 parent b281f58 commit ade70c3

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

packages/tray_manager/macos/Classes/TrayManagerPlugin.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -194,12 +194,12 @@ public class TrayManagerPlugin: NSObject, FlutterPlugin, NSMenuDelegate {
194194
let args:[String: Any] = call.arguments as! [String: Any]
195195

196196
trayMenu = TrayMenu(args["menu"] as! [String: Any])
197-
trayMenu?.onMenuItemClick = {
198-
(menuItem: NSMenuItem) in
197+
trayMenu?.onMenuItemClick = { [weak self] (menuItem: NSMenuItem) in
198+
guard let strongSelf = self else { return }
199199
let args: NSDictionary = [
200200
"id": menuItem.tag,
201201
]
202-
self.channel.invokeMethod(kEventOnTrayMenuItemClick, arguments: args, result: nil)
202+
strongSelf.channel.invokeMethod(kEventOnTrayMenuItemClick, arguments: args, result: nil)
203203
}
204204
trayMenu?.delegate = self
205205

packages/tray_manager/macos/Classes/TrayMenu.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,9 @@ public class TrayMenu: NSMenu, NSMenuDelegate {
5252
case "submenu":
5353
if let submenuDict = itemDict["submenu"] as? NSDictionary {
5454
let submenu = TrayMenu(submenuDict as! [String : Any])
55-
submenu.onMenuItemClick = {
56-
(menuItem: NSMenuItem) in
57-
self.statusItemMenuButtonClicked(menuItem)
55+
submenu.onMenuItemClick = { [weak self] (menuItem: NSMenuItem) in
56+
guard let strongSelf = self else { return }
57+
strongSelf.statusItemMenuButtonClicked(menuItem)
5858
}
5959
self.setSubmenu(submenu, for: menuItem)
6060
}

0 commit comments

Comments
 (0)