eleven / ocho Public

mac: ⌘F moves to the menu bar — the hidden button lost the responder fight (#294)

Find Chat… lives under File now: the view-level shortcut stopped
firing whenever a greedy first responder (a mini-app's WKWebView, a
text view) swallowed the key equivalent — menu items win the same way
⌘C does. The active surface consumes the tick, expanding the collapsed
rail before focusing Search.
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Paul Campbell 7da471653f690bd6ac45d30d92ca72841fbfd979 parent 883d06e
1 file changed, +8 −0
  • ios/LChatMac/LChatMacApp.swift +8 −0
diff --git a/ios/LChatMac/LChatMacApp.swift b/ios/LChatMac/LChatMacApp.swift
index 4bdfd1f..631176a 100644
--- a/ios/LChatMac/LChatMacApp.swift
+++ b/ios/LChatMac/LChatMacApp.swift
@@ -62,6 +62,12 @@ struct LChatMacApp: App {
CommandGroup(after: .newItem) {
Button("Add Chat…") { app.showAdd = true }
.keyboardShortcut("n", modifiers: [.command, .shift])
+ // A MENU shortcut, deliberately: a view-level hidden button
+ // lost ⌘F whenever a greedy first responder (a mini-app's
+ // WKWebView, a text view) swallowed the key equivalent — menu
+ // items win the same way ⌘C does.
+ Button("Find Chat…") { app.focusSearchTick += 1 }
+ .keyboardShortcut("f", modifiers: .command)
}
// ⌘1…⌘9 jump straight to a server, like browser/Slack tabs.
CommandMenu("Servers") {
@@ -164,6 +170,8 @@ final class MacAppState: ObservableObject {
// the palette requests a thread by writing nativeOpenThread, which the
// active NativeChatView consumes.
@Published var nativeChats: [NativePaletteChat] = []
+ // Bumped by File ▸ Find Chat (⌘F) — the active surface focuses its search.
+ @Published var focusSearchTick = 0
// A "open this thread AND land on this message" request (search hits):
// the matching feed consumes it once its history contains the target.
@Published var nativeJump: NativeJumpTarget?