From 06442f29ccf44d1f87bc9728d70729d56b9d60b2 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Tue, 8 Feb 2022 18:54:13 +0800 Subject: [PATCH] Reset // Properly set CHS and CHT mode switches. --- Source/Modules/ControllerModules/KeyHandler.h | 1 + Source/Modules/ControllerModules/KeyHandler.mm | 1 + Source/Modules/IMEModules/ctlInputMethod.swift | 10 +++++++++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Source/Modules/ControllerModules/KeyHandler.h b/Source/Modules/ControllerModules/KeyHandler.h index 1c427a2d..2eef39da 100644 --- a/Source/Modules/ControllerModules/KeyHandler.h +++ b/Source/Modules/ControllerModules/KeyHandler.h @@ -9,6 +9,7 @@ NS_ASSUME_NONNULL_BEGIN typedef NSString *const InputMode NS_TYPED_ENUM; extern InputMode imeModeCHT; extern InputMode imeModeCHS; +extern InputMode imeModeNULL; @class KeyHandler; diff --git a/Source/Modules/ControllerModules/KeyHandler.mm b/Source/Modules/ControllerModules/KeyHandler.mm index a0f3ea80..2bd3f0c1 100644 --- a/Source/Modules/ControllerModules/KeyHandler.mm +++ b/Source/Modules/ControllerModules/KeyHandler.mm @@ -16,6 +16,7 @@ using namespace vChewing; InputMode imeModeCHT = @"org.atelierInmu.inputmethod.vChewing.IMECHT"; InputMode imeModeCHS = @"org.atelierInmu.inputmethod.vChewing.IMECHS"; +InputMode imeModeNULL = @"org.atelierInmu.inputmethod.vChewing.IMENULL"; static const double kEpsilon = 0.000001; diff --git a/Source/Modules/IMEModules/ctlInputMethod.swift b/Source/Modules/IMEModules/ctlInputMethod.swift index 7ab67aa3..fcc861aa 100644 --- a/Source/Modules/IMEModules/ctlInputMethod.swift +++ b/Source/Modules/IMEModules/ctlInputMethod.swift @@ -101,7 +101,15 @@ class ctlInputMethod: IMKInputController { } override func setValue(_ value: Any!, forTag tag: Int, client: Any!) { - let newInputMode = InputMode(rawValue: value as? String ?? InputMode.imeModeCHT.rawValue) + var newInputMode = InputMode(rawValue: value as? String ?? InputMode.imeModeNULL.rawValue) + switch newInputMode { + case InputMode.imeModeCHS: + newInputMode = InputMode.imeModeCHS + case InputMode.imeModeCHT: + newInputMode = InputMode.imeModeCHT + default: + newInputMode = InputMode.imeModeNULL + } mgrLangModel.loadDataModel(newInputMode) if keyHandler.inputMode != newInputMode { UserDefaults.standard.synchronize()