From 74d4cc5b8c39e61d8aa8b51dcfd18fe4f67a9477 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Thu, 22 Dec 2022 15:55:41 +0800 Subject: [PATCH] InputHandler // Show current candidate ID during inline rotation. --- .../Modules/InputHandler_HandleStates.swift | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/Source/Modules/InputHandler_HandleStates.swift b/Source/Modules/InputHandler_HandleStates.swift index b86bc578..e87376d3 100644 --- a/Source/Modules/InputHandler_HandleStates.swift +++ b/Source/Modules/InputHandler_HandleStates.swift @@ -715,12 +715,13 @@ extension InputHandler { let currentPaired = (currentNode.keyArray, currentNode.value) - var currentIndex: Int { + // 改成一次性計算,省得每次讀取時都被重複計算。 + let currentIndex: Int = { var result = 0 - for candidate in candidates { + theLoop: for candidate in candidates { if !currentNode.isOverridden { if candidates[0] == currentPaired { result = reverseOrder ? candidates.count - 1 : 1 } - break + break theLoop } result = (candidate == currentPaired && reverseOrder) @@ -728,13 +729,23 @@ extension InputHandler { if candidate == currentPaired { break } } return (0..