macOS: grab text field focus of command palette after tick

Fixes #8497

This works on every other supported version of macOS but doesn't work on
macOS tahoe. Putting it on the next event loop tick works at least on
Sequoia and Tahoe so let's just do that.
pull/8591/head
Mitchell Hashimoto 2025-09-11 14:13:07 -07:00
parent 3d6207e88c
commit c9574ed0c7
No known key found for this signature in database
GPG Key ID: 523D5DC389D273BC
1 changed files with 6 additions and 1 deletions

View File

@ -165,7 +165,12 @@ fileprivate struct CommandPaletteQuery: View {
.textFieldStyle(.plain)
.focused($isTextFieldFocused)
.onAppear {
isTextFieldFocused = true
// We want to grab focus on appearance. We have to do this after a tick
// on macOS Tahoe otherwise this doesn't work. See:
// https://github.com/ghostty-org/ghostty/issues/8497
DispatchQueue.main.async {
isTextFieldFocused = true
}
}
.onChange(of: isTextFieldFocused) { focused in
if !focused {