InputState // Again disable inline userphrase operation when mismatch.

This commit is contained in:
ShikiSuen 2022-08-13 00:03:49 +08:00
parent 74bd927426
commit aefb5878d1
7 changed files with 11 additions and 12 deletions

View File

@ -280,9 +280,9 @@ public enum InputState {
private var markedTargetExists = false private var markedTargetExists = false
var tooltip: String { var tooltip: String {
if composingBuffer.count != readings.count { if composingBuffer.count != readings.count {
ctlInputMethod.tooltipController.setColor(state: .denialOverflow) ctlInputMethod.tooltipController.setColor(state: .redAlert)
return NSLocalizedString( return NSLocalizedString(
"⚠︎ Beware: Chars and Readings in buffer doesn't match.", comment: "" "⚠︎ Unhandlable: Chars and Readings in buffer doesn't match.", comment: ""
) )
} }
if mgrPrefs.phraseReplacementEnabled { if mgrPrefs.phraseReplacementEnabled {
@ -398,11 +398,9 @@ public enum InputState {
return state return state
} }
var validToFilter: Bool { var validToFilter: Bool { markedTargetExists ? allowedMarkRange.contains(literalMarkedRange.count) : false }
///
/// deleteTargetExists 使 var bufferReadingCountMisMatch: Bool { composingBuffer.count != readings.count }
markedTargetExists ? allowedMarkRange.contains(literalMarkedRange.count) : false
}
var chkIfUserPhraseExists: Bool { var chkIfUserPhraseExists: Bool {
let text = composingBuffer.utf16SubString(with: markedRange) let text = composingBuffer.utf16SubString(with: markedRange)

View File

@ -26,6 +26,7 @@ extension ctlInputMethod: KeyHandlerDelegate {
-> Bool -> Bool
{ {
guard let state = state as? InputState.Marking else { return false } guard let state = state as? InputState.Marking else { return false }
if state.bufferReadingCountMisMatch { return false }
let refInputModeReversed: InputMode = let refInputModeReversed: InputMode =
(keyHandler.inputMode == InputMode.imeModeCHT) (keyHandler.inputMode == InputMode.imeModeCHT)
? InputMode.imeModeCHS : InputMode.imeModeCHT ? InputMode.imeModeCHS : InputMode.imeModeCHT

View File

@ -39,7 +39,7 @@
"Please specify at least 4 candidate keys." = "Please specify at least 4 candidate keys."; "Please specify at least 4 candidate keys." = "Please specify at least 4 candidate keys.";
"Maximum 15 candidate keys allowed." = "Maximum 15 candidate keys allowed."; "Maximum 15 candidate keys allowed." = "Maximum 15 candidate keys allowed.";
"⚠︎ Phrase replacement mode enabled, interfering user phrase entry." = "⚠︎ Phrase replacement mode enabled, interfering user phrase entry."; "⚠︎ Phrase replacement mode enabled, interfering user phrase entry." = "⚠︎ Phrase replacement mode enabled, interfering user phrase entry.";
"⚠︎ Beware: Chars and Readings in buffer doesn't match." = "⚠︎ Beware: Chars and Readings in buffer doesn't match."; "⚠︎ Unhandlable: Chars and Readings in buffer doesn't match." = "⚠︎ Unhandlable: Chars and Readings in buffer doesn't match.";
"Per-Char Select Mode" = "Per-Char Select Mode"; "Per-Char Select Mode" = "Per-Char Select Mode";
"CNS11643 Mode" = "CNS11643 Mode"; "CNS11643 Mode" = "CNS11643 Mode";
"JIS Shinjitai Output" = "JIS Shinjitai Output"; "JIS Shinjitai Output" = "JIS Shinjitai Output";

View File

@ -39,7 +39,7 @@
"Please specify at least 4 candidate keys." = "Please specify at least 4 candidate keys."; "Please specify at least 4 candidate keys." = "Please specify at least 4 candidate keys.";
"Maximum 15 candidate keys allowed." = "Maximum 15 candidate keys allowed."; "Maximum 15 candidate keys allowed." = "Maximum 15 candidate keys allowed.";
"⚠︎ Phrase replacement mode enabled, interfering user phrase entry." = "⚠︎ Phrase replacement mode enabled, interfering user phrase entry."; "⚠︎ Phrase replacement mode enabled, interfering user phrase entry." = "⚠︎ Phrase replacement mode enabled, interfering user phrase entry.";
"⚠︎ Beware: Chars and Readings in buffer doesn't match." = "⚠︎ Beware: Chars and Readings in buffer doesn't match."; "⚠︎ Unhandlable: Chars and Readings in buffer doesn't match." = "⚠︎ Unhandlable: Chars and Readings in buffer doesn't match.";
"Per-Char Select Mode" = "Per-Char Select Mode"; "Per-Char Select Mode" = "Per-Char Select Mode";
"CNS11643 Mode" = "CNS11643 Mode"; "CNS11643 Mode" = "CNS11643 Mode";
"JIS Shinjitai Output" = "JIS Shinjitai Output"; "JIS Shinjitai Output" = "JIS Shinjitai Output";

View File

@ -39,7 +39,7 @@
"Please specify at least 4 candidate keys." = "言選り用キー陣列に少なくとも4つのキーをご登録ください。"; "Please specify at least 4 candidate keys." = "言選り用キー陣列に少なくとも4つのキーをご登録ください。";
"Maximum 15 candidate keys allowed." = "言選り用キー陣列には最多15つキー登録できます。"; "Maximum 15 candidate keys allowed." = "言選り用キー陣列には最多15つキー登録できます。";
"⚠︎ Phrase replacement mode enabled, interfering user phrase entry." = "⚠︎ 言葉置換機能稼働中、新添付言葉にも影響。"; "⚠︎ Phrase replacement mode enabled, interfering user phrase entry." = "⚠︎ 言葉置換機能稼働中、新添付言葉にも影響。";
"⚠︎ Beware: Chars and Readings in buffer doesn't match." = "⚠︎ 注意:緩衝列の字数は読みの数と不同等。"; "⚠︎ Unhandlable: Chars and Readings in buffer doesn't match." = "⚠︎ 対処不可:緩衝列の字数は読みの数と不同等。";
"Per-Char Select Mode" = "全候補入力モード"; "Per-Char Select Mode" = "全候補入力モード";
"CNS11643 Mode" = "全字庫モード"; "CNS11643 Mode" = "全字庫モード";
"JIS Shinjitai Output" = "JIS 新字体モード"; "JIS Shinjitai Output" = "JIS 新字体モード";

View File

@ -39,7 +39,7 @@
"Please specify at least 4 candidate keys." = "请至少指定四个选字键。"; "Please specify at least 4 candidate keys." = "请至少指定四个选字键。";
"Maximum 15 candidate keys allowed." = "选字键最多只能指定十五个。"; "Maximum 15 candidate keys allowed." = "选字键最多只能指定十五个。";
"⚠︎ Phrase replacement mode enabled, interfering user phrase entry." = "⚠︎ 语汇置换功能已启用,会波及语汇自订。"; "⚠︎ Phrase replacement mode enabled, interfering user phrase entry." = "⚠︎ 语汇置换功能已启用,会波及语汇自订。";
"⚠︎ Beware: Chars and Readings in buffer doesn't match." = "⚠︎ 注意:组字区字数与读音数不对应。"; "⚠︎ Unhandlable: Chars and Readings in buffer doesn't match." = "⚠︎ 无法处理:组字区字数与读音数不对应。";
"Per-Char Select Mode" = "仿真逐字选字输入"; "Per-Char Select Mode" = "仿真逐字选字输入";
"CNS11643 Mode" = "全字库模式"; "CNS11643 Mode" = "全字库模式";
"JIS Shinjitai Output" = "JIS 新字体模式"; "JIS Shinjitai Output" = "JIS 新字体模式";

View File

@ -39,7 +39,7 @@
"Please specify at least 4 candidate keys." = "請至少指定四個選字鍵。"; "Please specify at least 4 candidate keys." = "請至少指定四個選字鍵。";
"Maximum 15 candidate keys allowed." = "選字鍵最多只能指定十五個。"; "Maximum 15 candidate keys allowed." = "選字鍵最多只能指定十五個。";
"⚠︎ Phrase replacement mode enabled, interfering user phrase entry." = "⚠︎ 語彙置換功能已啟用,會波及語彙自訂。"; "⚠︎ Phrase replacement mode enabled, interfering user phrase entry." = "⚠︎ 語彙置換功能已啟用,會波及語彙自訂。";
"⚠︎ Beware: Chars and Readings in buffer doesn't match." = "⚠︎ 注意:組字區字數與讀音數不對應。"; "⚠︎ Unhandlable: Chars and Readings in buffer doesn't match." = "⚠︎ 無法處理:組字區字數與讀音數不對應。";
"Per-Char Select Mode" = "模擬逐字選字輸入"; "Per-Char Select Mode" = "模擬逐字選字輸入";
"CNS11643 Mode" = "全字庫模式"; "CNS11643 Mode" = "全字庫模式";
"JIS Shinjitai Output" = "JIS 新字體模式"; "JIS Shinjitai Output" = "JIS 新字體模式";