ctlIME // Propagate application of setKeyLayout().

This commit is contained in:
ShikiSuen 2022-03-26 17:36:06 +08:00
parent 22e3dcaf52
commit 4a0bd35c24
1 changed files with 8 additions and 5 deletions

View File

@ -153,8 +153,8 @@ class ctlInputMethod: IMKInputController {
override func activateServer(_ client: Any!) {
UserDefaults.standard.synchronize()
// Override the keyboard layout. Use US if not set.
(client as? IMKTextInput)?.overrideKeyboard(withKeyboardNamed: mgrPrefs.basisKeyboardLayout)
// Override the keyboard layout to the basic one.
setKeyLayout(isfunctionKeyboardLayout: false)
// reset the state
currentCandidateClient = nil
@ -181,14 +181,17 @@ class ctlInputMethod: IMKInputController {
newInputMode = InputMode.imeModeNULL
}
mgrLangModel.loadDataModel(newInputMode)
// Remember to override the keyboard layout again -- treat this as an activate event.
setKeyLayout(isfunctionKeyboardLayout: false)
if keyHandler.inputMode != newInputMode {
UserDefaults.standard.synchronize()
// Remember to override the keyboard layout again -- treat this as an activate event.
(client as? IMKTextInput)?.overrideKeyboard(withKeyboardNamed: mgrPrefs.basisKeyboardLayout)
keyHandler.clear()
keyHandler.inputMode = newInputMode
self.handle(state: .Empty(), client: client)
}
//
ctlInputMethod.currentKeyHandler.inputMode = keyHandler.inputMode
}
@ -208,7 +211,7 @@ class ctlInputMethod: IMKInputController {
// event.type == .flagsChanged return false
// NSInternalInconsistencyException
if event.type == .flagsChanged {
(client as? IMKTextInput)?.overrideKeyboard(withKeyboardNamed: getKeyLayoutFlagsCondition(event) ? mgrPrefs.functionKeyboardLayout : mgrPrefs.basisKeyboardLayout)
setKeyLayout(isfunctionKeyboardLayout: getKeyLayoutFlagsCondition(event))
return false
}
}