From 0085b9a08ee18bb690c6286cfe8784a4fe4f2339 Mon Sep 17 00:00:00 2001 From: Nicolas Bonamy Date: Fri, 10 Jun 2022 15:22:58 -0500 Subject: [PATCH 1/2] macos shortcut modifiers --- macos/Classes/ContextualMenu.swift | 16 ++++++++++++++++ pubspec.yaml | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/macos/Classes/ContextualMenu.swift b/macos/Classes/ContextualMenu.swift index 0caa8d9..9ed70b0 100644 --- a/macos/Classes/ContextualMenu.swift +++ b/macos/Classes/ContextualMenu.swift @@ -33,6 +33,8 @@ public class ContextualMenu: NSMenu, NSMenuDelegate { let toolTip: String = itemDict["toolTip"] as? String ?? "" let checked: Bool? = itemDict["checked"] as? Bool let disabled: Bool = itemDict["disabled"] as? Bool ?? true + let shortcutKey: String = itemDict["shortcutKey"] as? String ?? "" + let shortcutModifiers: [String] = itemDict["shortcutModifiers"] as? [String] ?? [] if (type == "separator") { menuItem = NSMenuItem.separator() @@ -46,6 +48,20 @@ public class ContextualMenu: NSMenu, NSMenuDelegate { menuItem.isEnabled = !disabled menuItem.action = !disabled ? #selector(statusItemMenuButtonClicked) : nil menuItem.target = self + + menuItem.keyEquivalent = shortcutKey + menuItem.keyEquivalentModifierMask = [] + for modifier in shortcutModifiers { + if (modifier == "ctrl") { + menuItem.keyEquivalentModifierMask = menuItem.keyEquivalentModifierMask.union(.control) + } else if (modifier == "shift") { + menuItem.keyEquivalentModifierMask = menuItem.keyEquivalentModifierMask.union(.shift) + } else if (modifier == "alt" || modifier == "option") { + menuItem.keyEquivalentModifierMask = menuItem.keyEquivalentModifierMask.union(.option) + } else if (modifier == "cmd") { + menuItem.keyEquivalentModifierMask = menuItem.keyEquivalentModifierMask.union(.command) + } + } switch (type) { case "separator": diff --git a/pubspec.yaml b/pubspec.yaml index b35899b..3ce1ea7 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -16,7 +16,7 @@ dependencies: flutter: sdk: flutter - menu_base: ^0.1.1 + menu_base: ^0.2.0 dev_dependencies: flutter_test: From 8d70983c1d2e8fa8f6d2bdd987ac1243705162f2 Mon Sep 17 00:00:00 2001 From: Nicolas Bonamy Date: Fri, 10 Jun 2022 16:29:22 -0500 Subject: [PATCH 2/2] dependencies update --- pubspec.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 3ce1ea7..23b7b3f 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -16,7 +16,9 @@ dependencies: flutter: sdk: flutter - menu_base: ^0.2.0 + menu_base: + git: + url: https://github.com/nbonamy/menu_base dev_dependencies: flutter_test: