diff --git a/Tinycast/Features/Dictionary/UI/DictionaryCoordinator.swift b/Tinycast/Features/Dictionary/UI/DictionaryCoordinator.swift index 9c4b9df4f..576cd0630 100644 --- a/Tinycast/Features/Dictionary/UI/DictionaryCoordinator.swift +++ b/Tinycast/Features/Dictionary/UI/DictionaryCoordinator.swift @@ -11,7 +11,7 @@ final class DictionaryCoordinator { /// `term` is the fallback row's query, so the screen opens already showing its entry. func show(term: String = "") { - paletteCoordinator.showPalette(mode: .dictionary, seeding: term.isEmpty ? nil : term) + paletteCoordinator.togglePalette(mode: .dictionary, seeding: term.isEmpty ? nil : term) } func copy(_ entry: DictionaryEntry) { diff --git a/Tinycast/Features/Extensions/UI/ExtensionCoordinator.swift b/Tinycast/Features/Extensions/UI/ExtensionCoordinator.swift index 4b7e82d62..3cbeab3de 100644 --- a/Tinycast/Features/Extensions/UI/ExtensionCoordinator.swift +++ b/Tinycast/Features/Extensions/UI/ExtensionCoordinator.swift @@ -71,6 +71,13 @@ final class ExtensionCoordinator { guard settings.extensionsEnabled, let entry = extensions.launcherEntry(forEntryID: entryID) else { return } + // The shortcut's second press closes its command, as a mode command's does. + if paletteCoordinator.isShowing(.extensionCommand), + extensions.running == ExtensionCommandRef(entryID: entryID) + { + paletteCoordinator.hidePalette() + return + } runExtensionCommand(entry) }