Repo // Stop dealing with a user phrase if its length is invalid.

This commit is contained in:
ShikiSuen 2022-09-09 17:39:49 +08:00
parent ff7dbefa01
commit d8f7578395
3 changed files with 14 additions and 2 deletions

View File

@ -35,6 +35,7 @@ public protocol IMEStateProtocol {
var attributedString: NSAttributedString { get } var attributedString: NSAttributedString { get }
var convertedToInputting: IMEState { get } var convertedToInputting: IMEState { get }
var isFilterable: Bool { get } var isFilterable: Bool { get }
var isMarkedLengthValid: Bool { get }
var node: SymbolNode { get set } var node: SymbolNode { get set }
} }
@ -154,6 +155,7 @@ extension IMEState {
extension IMEState { extension IMEState {
public var isFilterable: Bool { data.isFilterable } public var isFilterable: Bool { data.isFilterable }
public var isMarkedLengthValid: Bool { data.isMarkedLengthValid }
public var candidates: [(String, String)] { data.candidates } public var candidates: [(String, String)] { data.candidates }
public var convertedToInputting: IMEState { public var convertedToInputting: IMEState {
if type == .ofInputting { return self } if type == .ofInputting { return self }

View File

@ -76,7 +76,11 @@ public struct StateData {
] ]
) )
var isFilterable: Bool { var isFilterable: Bool {
markedTargetExists ? mgrPrefs.allowedMarkLengthRange.contains(markedRange.count) : false markedTargetExists ? isMarkedLengthValid : false
}
var isMarkedLengthValid: Bool {
mgrPrefs.allowedMarkLengthRange.contains(markedRange.count)
} }
var attributedStringNormal: NSAttributedString { var attributedStringNormal: NSAttributedString {

View File

@ -161,7 +161,13 @@ extension KeyHandler {
IME.prtDebugIntel("2EAC1F7A") IME.prtDebugIntel("2EAC1F7A")
errorCallback() errorCallback()
return true return true
} else if !keyHandlerDelegate.keyHandler(self, didRequestWriteUserPhraseWith: state, addToFilter: false) { }
if !state.isMarkedLengthValid {
IME.prtDebugIntel("9AAFAC00")
errorCallback()
return true
}
if !keyHandlerDelegate.keyHandler(self, didRequestWriteUserPhraseWith: state, addToFilter: false) {
IME.prtDebugIntel("5B69CC8D") IME.prtDebugIntel("5B69CC8D")
errorCallback() errorCallback()
return true return true