fix(terminal): update selection input and remove accessory overrides

This commit is contained in:
Kaede Akino committed 2026-10-03 12:50:53 +08:00
1 parent f6122c6306
commit e19b4eedf3
5 files changed
+5 -58

No files matched your search

-27
View File
@@ -91,33 +91,6 @@ final class MobileTerminalView: TerminalView {
weak var findController: TerminalFindController?
override func inputAccessoryAccessibilityLabel(for item: TerminalInputAccessoryItem) -> String? {
let title: LocalizedStringResource
switch item {
case .esc: title = AppStrings.Terminal.escape
case .tab: title = AppStrings.Terminal.tab
case .ctrl: title = AppStrings.Terminal.control
case .alt: title = AppStrings.Terminal.option
case .command: title = AppStrings.Terminal.commandKey
case .arrowLeft: title = AppStrings.Terminal.leftArrow
case .arrowUp: title = AppStrings.Terminal.upArrow
case .arrowDown: title = AppStrings.Terminal.downArrow
case .arrowRight: title = AppStrings.Terminal.rightArrow
case .paste: title = AppStrings.Common.paste
case .symbol(let symbol): return symbol
case .divider: return nil
}
return String(localized: title)
}
override func inputAccessoryAccessibilityValue(for activation: TerminalPublicStickyActivation) -> String {
switch activation {
case .inactive: String(localized: AppStrings.Terminal.inactive)
case .armed: String(localized: AppStrings.Terminal.armed)
case .locked: String(localized: AppStrings.Terminal.locked)
}
}
override var keyCommands: [UIKeyCommand]? {
var commands = super.keyCommands ?? []
commands.append(findCommand(title: AppStrings.Terminal.findNextInTerminal, modifiers: []))
+2 -28
View File
@@ -1,7 +1,6 @@
import Foundation
import GhosttyTerminal
import SwiftUI
import TermindPresentation
import Testing
import UIKit
@@ -21,12 +20,9 @@ struct MobileTerminalKeyboardTests {
])
let bar = try #require(terminal.inputAccessoryView)
let buttons = accessoryButtons(in: bar)
#expect(buttons.map(\.accessibilityLabel) == items.compactMap(terminal.inputAccessoryAccessibilityLabel))
#expect(buttons.map(\.accessibilityLabel) == items.compactMap(\.title))
#expect(items.last == .paste)
#expect(buttons.count == 18)
#expect(
terminal.inputAccessoryAccessibilityLabel(for: .command)
== String(localized: AppStrings.Terminal.commandKey))
}
@Test func nativeAccessoryKeepsItsGeometryAndAllKeysReachable() throws {
@@ -50,28 +46,6 @@ struct MobileTerminalKeyboardTests {
}
}
@Test func modifierButtonsExposeLocalizedArmedAndLockedStates() throws {
let terminal = MobileTerminalView(frame: .zero)
let bar = try #require(terminal.inputAccessoryView)
for (modifier, item) in [
(TerminalPublicStickyModifier.ctrl, TerminalInputAccessoryItem.ctrl), (.alt, .alt), (.command, .command),
] {
let button = try #require(
accessoryButtons(in: bar).first {
$0.accessibilityLabel == terminal.inputAccessoryAccessibilityLabel(for: item)
})
button.sendActions(for: .touchUpInside)
#expect(terminal.stickyActivation(for: modifier) == .armed)
#expect(button.accessibilityValue == String(localized: AppStrings.Terminal.armed))
#expect(button.accessibilityTraits.contains(.selected))
button.sendActions(for: .touchUpInside)
#expect(terminal.stickyActivation(for: modifier) == .locked)
#expect(button.accessibilityValue == String(localized: AppStrings.Terminal.locked))
button.sendActions(for: .touchUpInside)
#expect(terminal.stickyActivation(for: modifier) == .inactive)
#expect(!button.accessibilityTraits.contains(.selected))
}
}
}
/// Hosts the library's actual UIView for the existing opt-in rendering matrix.
@@ -269,7 +243,7 @@ private final class KeyboardFixture {
let bar = try #require(terminal.inputAccessoryView)
return try #require(
accessoryButtons(in: bar).first {
$0.accessibilityLabel == terminal.inputAccessoryAccessibilityLabel(for: item)
$0.accessibilityLabel == item.title
})
}
+1 -1
View File
@@ -2955,7 +2955,7 @@
repositoryURL = "https://github.com/AkinoKaede/libghostty-spm.git";
requirement = {
kind = revision;
revision = 360f20c30a21cde197b31274cf58cd8e30208ad0;
revision = 3b4842d3dd0faaf748f82c561d6eb9589a3a98f6;
};
};
TRMD00000000000000100023 /* XCRemoteSwiftPackageReference "openssl-spm" */ = {
@@ -168,7 +168,7 @@
"kind" : "remoteSourceControl",
"location" : "https://github.com/AkinoKaede/libghostty-spm.git",
"state" : {
"revision" : "360f20c30a21cde197b31274cf58cd8e30208ad0"
"revision" : "3b4842d3dd0faaf748f82c561d6eb9589a3a98f6"
}
},
{