diff --git a/Source/Modules/ControllerModules/KeyHandler_Core.swift b/Source/Modules/ControllerModules/KeyHandler_Core.swift index 58d06d9e..cfa0a337 100644 --- a/Source/Modules/ControllerModules/KeyHandler_Core.swift +++ b/Source/Modules/ControllerModules/KeyHandler_Core.swift @@ -238,7 +238,7 @@ class KeyHandler { } /// 獲取候選字詞陣列資料內容。 - var candidatesArray: [String] { + func candidatesArray(fixOrder: Bool = true) -> [String] { var arrNodes: [Megrez.NodeAnchor] = rawNodes var arrCandidates: [String] = [] @@ -262,7 +262,7 @@ class KeyHandler { } } } - if mgrPrefs.fetchSuggestionsFromUserOverrideModel, !mgrPrefs.useSCPCTypingMode { + if mgrPrefs.fetchSuggestionsFromUserOverrideModel, !mgrPrefs.useSCPCTypingMode, !fixOrder { let arrSuggestedUnigrams: [Megrez.Unigram] = fetchSuggestedCandidates().stableSort { $0.score > $1.score } let arrSuggestedCandidates: [String] = arrSuggestedUnigrams.map(\.keyValue.value) arrCandidates = arrSuggestedCandidates.filter { arrCandidates.contains($0) } + arrCandidates diff --git a/Source/Modules/ControllerModules/KeyHandler_States.swift b/Source/Modules/ControllerModules/KeyHandler_States.swift index a9e5c5e4..d8986d07 100644 --- a/Source/Modules/ControllerModules/KeyHandler_States.swift +++ b/Source/Modules/ControllerModules/KeyHandler_States.swift @@ -169,7 +169,7 @@ extension KeyHandler { InputState.ChoosingCandidate( composingBuffer: currentState.composingBuffer, cursorIndex: currentState.cursorIndex, - candidates: candidatesArray, + candidates: candidatesArray(fixOrder: false), isTypingVertical: isTypingVertical ) } @@ -772,8 +772,7 @@ extension KeyHandler { return true } - // 此處僅借用該函式生成結果內的某個物件,不用糾結「是否縱排輸入」。 - let candidates = candidatesArray + let candidates = candidatesArray(fixOrder: true) guard !candidates.isEmpty else { IME.prtDebugIntel("3378A6DF") errorCallback()