macos: more strict detection for tab context menu

We were accidentally modifying the "View" menu.
pull/9888/head
Mitchell Hashimoto 2025-12-12 14:05:46 -08:00
parent dd06d8a13b
commit ddaf307cf7
No known key found for this signature in database
GPG Key ID: 523D5DC389D273BC
1 changed files with 3 additions and 3 deletions

View File

@ -708,8 +708,8 @@ extension TerminalWindow {
private func isTabContextMenu(_ menu: NSMenu) -> Bool { private func isTabContextMenu(_ menu: NSMenu) -> Bool {
guard NSApp.keyWindow === self else { return false } guard NSApp.keyWindow === self else { return false }
// These are the target selectors, at least for macOS 26. // These selectors must all exist for it to be a tab context menu.
let tabContextSelectors: Set<String> = [ let requiredSelectors: Set<String> = [
"performClose:", "performClose:",
"performCloseOtherTabs:", "performCloseOtherTabs:",
"moveTabToNewWindow:", "moveTabToNewWindow:",
@ -717,7 +717,7 @@ extension TerminalWindow {
] ]
let selectorNames = Set(menu.items.compactMap { $0.action }.map { NSStringFromSelector($0) }) let selectorNames = Set(menu.items.compactMap { $0.action }.map { NSStringFromSelector($0) })
return !selectorNames.isDisjoint(with: tabContextSelectors) return requiredSelectors.isSubset(of: selectorNames)
} }
private func appendTabModifierSection(to menu: NSMenu, target: TerminalController?) { private func appendTabModifierSection(to menu: NSMenu, target: TerminalController?) {