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 convertedToInputting: IMEState { get }
var isFilterable: Bool { get }
var isMarkedLengthValid: Bool { get }
var node: SymbolNode { get set }
}
@ -154,6 +155,7 @@ extension IMEState {
extension IMEState {
public var isFilterable: Bool { data.isFilterable }
public var isMarkedLengthValid: Bool { data.isMarkedLengthValid }
public var candidates: [(String, String)] { data.candidates }
public var convertedToInputting: IMEState {
if type == .ofInputting { return self }

View File

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

View File

@ -161,7 +161,13 @@ extension KeyHandler {
IME.prtDebugIntel("2EAC1F7A")
errorCallback()
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")
errorCallback()
return true