KeyHandler // Deprecating CFStringTransform(), etc.

This commit is contained in:
ShikiSuen 2022-10-09 17:17:36 +08:00
parent 2cd43f8a69
commit 55c469bf31
2 changed files with 5 additions and 6 deletions

View File

@ -14,6 +14,7 @@ extension NSEvent: InputSignalProtocol {}
// MARK: - InputSignalProtocol
public protocol InputSignalProtocol {
var modifierFlags: NSEvent.ModifierFlags { get }
var isTypingVertical: Bool { get }
var text: String { get }
var inputTextIgnoringModifiers: String? { get }

View File

@ -318,14 +318,12 @@ extension KeyHandler {
// MARK: / (FW / HW Arabic Numbers Input)
if state.type == .ofEmpty {
if input.isMainAreaNumKey, input.isShiftHold, input.isOptionHold, !input.isControlHold, !input.isCommandHold {
// NOTE: macOS 10.11 El Capitan CFStringTransform StringTransform:
// https://developer.apple.com/documentation/foundation/stringtransform
if input.isMainAreaNumKey, input.modifierFlags == [.shift, .option] {
guard let stringRAW = input.mainAreaNumKeyChar else { return false }
let string = NSMutableString(string: stringRAW)
CFStringTransform(string, nil, kCFStringTransformFullwidthHalfwidth, true)
let newStringFW = stringRAW.applyingTransform(.fullwidthToHalfwidth, reverse: true) ?? stringRAW
let newStringHW = stringRAW.applyingTransform(.fullwidthToHalfwidth, reverse: false) ?? stringRAW
stateCallback(
IMEState.ofCommitting(textToCommit: prefs.halfWidthPunctuationEnabled ? stringRAW : string as String)
IMEState.ofCommitting(textToCommit: prefs.halfWidthPunctuationEnabled ? newStringHW : newStringFW)
)
stateCallback(IMEState.ofEmpty())
return true