SessionCtl // Again let IME works right after rebooting itself.

This commit is contained in:
ShikiSuen 2022-10-10 20:09:17 +08:00
parent 0956e043fd
commit 1e8b0af44b
1 changed files with 8 additions and 1 deletions

View File

@ -133,6 +133,12 @@ public class SessionCtl: IMKInputController {
super.init(server: server, delegate: delegate, client: inputClient) super.init(server: server, delegate: delegate, client: inputClient)
keyHandler.delegate = self keyHandler.delegate = self
syncBaseLMPrefs() syncBaseLMPrefs()
//
activateServer(inputClient)
if PrefMgr.shared.onlyLoadFactoryLangModelsIfNeeded { LMMgr.loadDataModel(IMEApp.currentInputMode) }
if let myID = Bundle.main.bundleIdentifier, !myID.isEmpty, !clientBundleIdentifier.contains(myID) {
setKeyLayout()
}
} }
} }
@ -180,6 +186,7 @@ extension SessionCtl {
public override func activateServer(_ sender: Any!) { public override func activateServer(_ sender: Any!) {
_ = sender // _ = sender //
UserDefaults.standard.synchronize() UserDefaults.standard.synchronize()
if Self.allInstances.contains(self) { return }
// activateServer nil // activateServer nil
// //
@ -219,7 +226,7 @@ extension SessionCtl {
public override func setValue(_ value: Any!, forTag tag: Int, client sender: Any!) { public override func setValue(_ value: Any!, forTag tag: Int, client sender: Any!) {
_ = tag // _ = tag //
_ = sender // _ = sender //
let newInputMode = Shared.InputMode(rawValue: value as? String ?? "") ?? Shared.InputMode.imeModeNULL let newInputMode: Shared.InputMode = .init(rawValue: value as? String ?? "") ?? .imeModeNULL
if PrefMgr.shared.onlyLoadFactoryLangModelsIfNeeded { LMMgr.loadDataModel(newInputMode) } if PrefMgr.shared.onlyLoadFactoryLangModelsIfNeeded { LMMgr.loadDataModel(newInputMode) }
inputMode = newInputMode inputMode = newInputMode
if let rawValString = value as? String, let bundleID = Bundle.main.bundleIdentifier, if let rawValString = value as? String, let bundleID = Bundle.main.bundleIdentifier,