diff --git a/CHANGELOG.md b/CHANGELOG.md index 9cb6ef4cc..8d7cf79b7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,11 @@ Change Log - Restore the “Keep on Top” state of windows from the last session. +### Fixes + +- Fix an issue in CotEditor 4.5.3 that some menu command shortcuts could not be customized. + + 4.5.3 (564) -------------------------- diff --git a/CotEditor/Sources/KeyBindingManager.swift b/CotEditor/Sources/KeyBindingManager.swift index ad94be8a6..ed5f0272b 100644 --- a/CotEditor/Sources/KeyBindingManager.swift +++ b/CotEditor/Sources/KeyBindingManager.swift @@ -310,12 +310,13 @@ final class KeyBindingManager: SettingManaging { menu.items .filter(self.allowsModifying) - .filter(self.isModified) .forEach { menuItem in if let submenu = menuItem.submenu { return self.clearShortcuts(in: submenu) } + guard self.isModified(menuItem) else { return } + menuItem.shortcut = nil } } @@ -328,13 +329,15 @@ final class KeyBindingManager: SettingManaging { menu.items .filter(self.allowsModifying) - .filter(self.isModified) .forEach { menuItem in if let submenu = menuItem.submenu { return self.applyShortcuts(to: submenu) } - guard let action = menuItem.action else { return } + guard + self.isModified(menuItem), + let action = menuItem.action + else { return } menuItem.allowsAutomaticKeyEquivalentLocalization = false menuItem.shortcut = self.shortcut(for: action, tag: menuItem.tag)