From 41530103d2c7b5036bdc25589687090d88857f0a Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Wed, 23 Mar 2022 13:19:35 +0800 Subject: [PATCH] ctlIME // Allow in-place writing to UserExclPhraseData. --- Source/Modules/IMEModules/ctlInputMethod.swift | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Source/Modules/IMEModules/ctlInputMethod.swift b/Source/Modules/IMEModules/ctlInputMethod.swift index d3e78100..6713f2dc 100644 --- a/Source/Modules/IMEModules/ctlInputMethod.swift +++ b/Source/Modules/IMEModules/ctlInputMethod.swift @@ -41,6 +41,8 @@ class ctlInputMethod: IMKInputController { @objc static let kIMEModeCHS = "org.atelierInmu.inputmethod.vChewing.IMECHS"; @objc static let kIMEModeCHT = "org.atelierInmu.inputmethod.vChewing.IMECHT"; @objc static let kIMEModeNULL = "org.atelierInmu.inputmethod.vChewing.IMENULL"; + + @objc static var areWeDeleting = false; private static let tooltipController = TooltipController() @@ -204,6 +206,8 @@ class ctlInputMethod: IMKInputController { } else { (client as? IMKTextInput)?.overrideKeyboard(withKeyboardNamed: mgrPrefs.basisKeyboardLayout) } + // 準備修飾鍵,用來判定是否需要利用就地新增語彙時的 Enter 鍵來砍詞。 + ctlInputMethod.areWeDeleting = event.modifierFlags.contains([.shift, .command]) return false } @@ -644,8 +648,8 @@ extension ctlInputMethod: KeyHandlerDelegate { return false } let InputModeReversed: InputMode = (ctlInputMethod.currentKeyHandler.inputMode == InputMode.imeModeCHT) ? InputMode.imeModeCHS : InputMode.imeModeCHT - mgrLangModel.writeUserPhrase(state.userPhrase, inputMode: keyHandler.inputMode, areWeDuplicating: state.chkIfUserPhraseExists) - mgrLangModel.writeUserPhrase(state.userPhraseConverted, inputMode: InputModeReversed, areWeDuplicating: false) + mgrLangModel.writeUserPhrase(state.userPhrase, inputMode: keyHandler.inputMode, areWeDuplicating: state.chkIfUserPhraseExists, areWeDeleting: ctlInputMethod.areWeDeleting) + mgrLangModel.writeUserPhrase(state.userPhraseConverted, inputMode: InputModeReversed, areWeDuplicating: false, areWeDeleting: ctlInputMethod.areWeDeleting) return true } }