From 6dc1393143c50e14db17f57c8d3e1f651a8c8499 Mon Sep 17 00:00:00 2001 From: Nate Weaver Date: Sat, 8 Oct 2022 22:08:00 -0500 Subject: [PATCH] Always respect the user's "Open in Browser" preference --- .../TimelineViewController+ContextualMenus.swift | 11 +++++++++-- Mac/MainWindow/Timeline/TimelineViewController.swift | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/Mac/MainWindow/Timeline/TimelineViewController+ContextualMenus.swift b/Mac/MainWindow/Timeline/TimelineViewController+ContextualMenus.swift index 6da82f3e7..716e8555e 100644 --- a/Mac/MainWindow/Timeline/TimelineViewController+ContextualMenus.swift +++ b/Mac/MainWindow/Timeline/TimelineViewController+ContextualMenus.swift @@ -93,7 +93,7 @@ extension TimelineViewController { return } - Browser.open(urlStrings, fromWindow: self.view.window) + Browser.open(urlStrings, fromWindow: self.view.window, invertPreference: NSApp.currentEvent?.modifierFlags.contains(.shift) ?? false) } @objc func copyURLFromContextualMenu(_ sender: Any?) { @@ -182,6 +182,7 @@ private extension TimelineViewController { if links.count > 0 { menu.addSeparatorIfNeeded() menu.addItem(openInBrowserMenuItem(links)) + menu.addItem(openInBrowserReversedMenuItem(links)) menu.addSeparatorIfNeeded() menu.addItem(copyArticleURLsMenuItem(links)) @@ -278,9 +279,15 @@ private extension TimelineViewController { } func openInBrowserMenuItem(_ urlStrings: [String]) -> NSMenuItem { - return menuItem(NSLocalizedString("Open in Browser", comment: "Command"), #selector(openInBrowserFromContextualMenu(_:)), urlStrings) } + + func openInBrowserReversedMenuItem(_ urlStrings: [String]) -> NSMenuItem { + let item = menuItem(Browser.titleForOpenInBrowserInverted, #selector(openInBrowserFromContextualMenu(_:)), urlStrings) + item.keyEquivalentModifierMask = .shift + item.isAlternate = true + return item; + } func copyArticleURLsMenuItem(_ urlStrings: [String]) -> NSMenuItem { let format = NSLocalizedString("Copy Article URL", comment: "Command") diff --git a/Mac/MainWindow/Timeline/TimelineViewController.swift b/Mac/MainWindow/Timeline/TimelineViewController.swift index 67472a2b0..654e44813 100644 --- a/Mac/MainWindow/Timeline/TimelineViewController.swift +++ b/Mac/MainWindow/Timeline/TimelineViewController.swift @@ -316,7 +316,7 @@ final class TimelineViewController: NSViewController, UndoableCommandRunner, Unr @objc func openArticleInBrowser(_ sender: Any?) { let urlStrings = selectedArticles.compactMap { $0.preferredLink } - Browser.open(urlStrings, fromWindow: self.view.window) + Browser.open(urlStrings, fromWindow: self.view.window, invertPreference: NSApp.currentEvent?.modifierFlags.contains(.shift) ?? false) } @IBAction func toggleStatusOfSelectedArticles(_ sender: Any?) {