diff --git a/Packages/vChewing_MainAssembly/Sources/MainAssembly/InputHandler_HandleStates.swift b/Packages/vChewing_MainAssembly/Sources/MainAssembly/InputHandler_HandleStates.swift index f843d81a..f85f7ba7 100644 --- a/Packages/vChewing_MainAssembly/Sources/MainAssembly/InputHandler_HandleStates.swift +++ b/Packages/vChewing_MainAssembly/Sources/MainAssembly/InputHandler_HandleStates.swift @@ -1032,6 +1032,9 @@ extension InputHandler { return false } + // 不再讓威注音處理由 Shift 切換到的英文模式的按鍵輸入。 + if delegate.isASCIIMode, !input.isCapsLockOn { return false } + /// 如果是 ASCII 當中的不可列印的字元的話, /// 不使用「insertText:replacementRange:」。 /// 某些應用無法正常處理非 ASCII 字符的輸入。 diff --git a/Packages/vChewing_MainAssembly/Sources/MainAssembly/SessionCtl_HandleEvent.swift b/Packages/vChewing_MainAssembly/Sources/MainAssembly/SessionCtl_HandleEvent.swift index 81e98275..b17d445e 100644 --- a/Packages/vChewing_MainAssembly/Sources/MainAssembly/SessionCtl_HandleEvent.swift +++ b/Packages/vChewing_MainAssembly/Sources/MainAssembly/SessionCtl_HandleEvent.swift @@ -101,9 +101,6 @@ public extension SessionCtl { // MARK: 針對客體的具體處理 - // 不再讓威注音處理由 Shift 切換到的英文模式的按鍵輸入。 - if isASCIIMode, !Self.isCapsLocked { return false } - /// 這裡仍舊需要判斷 flags。之前使輸入法狀態卡住無法敲漢字的問題已在 InputHandler 內修復。 /// 這裡不判斷 flags 的話,用方向鍵前後定位光標之後,再次試圖觸發組字區時、反而會在首次按鍵時失敗。 /// 同時注意:必須針對 event.type == .flagsChanged 提前返回結果,