Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Fixed

- The license activation sheet focuses the key field on open, the SQL review sheet closes with Escape even while the editor has focus, and the integration token sheet focuses its Done button. (#1490)
- Copy with Headers now has a default keyboard shortcut (Cmd+Option+C), so it works and is discoverable from the keyboard instead of showing in the Edit menu with no key. (#1490)
- VoiceOver now reads the column name and current value for each field editor in the cell inspector. (#1490)
- VoiceOver announces the active tab title when you switch between window tabs. (#1490)
Expand Down
1 change: 1 addition & 0 deletions TablePro/Views/Components/SQLReviewSheet.swift
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ struct SQLReviewSheet: View {
}
.frame(width: 560, height: 460)
.background(Color(nsColor: .windowBackgroundColor))
.onExitCommand { dismiss() }
.task { await prepare() }
}

Expand Down
3 changes: 3 additions & 0 deletions TablePro/Views/Settings/LicenseActivationSheet.swift
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ struct LicenseActivationSheet: View {
@State private var licenseKeyInput = ""
@State private var isActivating = false
@State private var errorMessage: String?
@FocusState private var keyFocused: Bool

var body: some View {
VStack(spacing: 0) {
Expand Down Expand Up @@ -40,6 +41,7 @@ struct LicenseActivationSheet: View {
.textFieldStyle(.roundedBorder)
.disableAutocorrection(true)
.multilineTextAlignment(.center)
.focused($keyFocused)
.onSubmit { Task { await activate() } }

if let errorMessage {
Expand Down Expand Up @@ -79,6 +81,7 @@ struct LicenseActivationSheet: View {
.padding(.bottom, 24)
}
.frame(width: 400)
.defaultFocus($keyFocused, true)
}

private func activate() async {
Expand Down
3 changes: 3 additions & 0 deletions TablePro/Views/Settings/Sections/MCPTokenRevealSheet.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ struct MCPTokenRevealSheet: View {
@State private var isTokenRevealed = false
@State private var tokenCopied = false
@State private var selectedClient: IntegrationClient = .claudeCode
@FocusState private var doneFocused: Bool

var body: some View {
VStack(spacing: 0) {
Expand All @@ -29,10 +30,12 @@ struct MCPTokenRevealSheet: View {
Spacer()
Button(String(localized: "Done")) { dismiss() }
.keyboardShortcut(.defaultAction)
.focused($doneFocused)
}
.padding()
}
.frame(minWidth: 540, minHeight: 520)
.defaultFocus($doneFocused, true)
}

private var warningBanner: some View {
Expand Down
Loading