From 893e49ee6c0a1066ddc1d306a5be15906c0a2fbb Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Thu, 4 Aug 2022 21:47:36 +0800 Subject: [PATCH] mgrPrefs // +togglingAlphanumericalModeWithShift. --- Source/3rdParty/Qwertyyb/ShiftKeyUpChecker.swift | 8 ++++++-- Source/Modules/IMEModules/mgrPrefs.swift | 11 +++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/Source/3rdParty/Qwertyyb/ShiftKeyUpChecker.swift b/Source/3rdParty/Qwertyyb/ShiftKeyUpChecker.swift index cfb792ce..43ae41b9 100644 --- a/Source/3rdParty/Qwertyyb/ShiftKeyUpChecker.swift +++ b/Source/3rdParty/Qwertyyb/ShiftKeyUpChecker.swift @@ -15,7 +15,11 @@ extension Date { class ShiftKeyUpChecker { init() {} private static var checkModifier: NSEvent.ModifierFlags { NSEvent.ModifierFlags.shift } - private static var checkKeyCode: [UInt16] { [KeyCode.kShift.rawValue, KeyCode.kRightShift.rawValue] } + private static var checkKeyCode: [UInt16] { + mgrPrefs.togglingAlphanumericalModeWithLShift + ? [KeyCode.kShift.rawValue, KeyCode.kRightShift.rawValue] + : [KeyCode.kRightShift.rawValue] + } private static let delayInterval = 0.3 @@ -39,7 +43,7 @@ class ShiftKeyUpChecker { print("isLeftShift: \(isLeftShift), isRightShift: \(isRightShift)") let isKeyDown = event.type == .flagsChanged - && event.modifierFlags.intersection(.deviceIndependentFlagsMask) == checkModifier + && checkModifier.contains(event.modifierFlags.intersection(.deviceIndependentFlagsMask)) && ShiftKeyUpChecker.checkKeyCode.contains(event.keyCode) if isKeyDown { // modifier keydown event diff --git a/Source/Modules/IMEModules/mgrPrefs.swift b/Source/Modules/IMEModules/mgrPrefs.swift index 8d786fe8..3f1fac5e 100644 --- a/Source/Modules/IMEModules/mgrPrefs.swift +++ b/Source/Modules/IMEModules/mgrPrefs.swift @@ -46,6 +46,7 @@ public enum UserDef: String, CaseIterable { case kAutoCorrectReadingCombination = "AutoCorrectReadingCombination" case kAlsoConfirmAssociatedCandidatesByEnter = "AlsoConfirmAssociatedCandidatesByEnter" case kKeepReadingUponCompositionError = "KeepReadingUponCompositionError" + case kTogglingAlphanumericalModeWithLShift = "TogglingAlphanumericalModeWithLShift" case kCandidateTextFontName = "CandidateTextFontName" case kCandidateKeyLabelFontName = "CandidateKeyLabelFontName" @@ -300,6 +301,9 @@ public enum mgrPrefs { UserDefaults.standard.setDefault( mgrPrefs.keepReadingUponCompositionError, forKey: UserDef.kKeepReadingUponCompositionError.rawValue ) + UserDefaults.standard.setDefault( + mgrPrefs.togglingAlphanumericalModeWithLShift, forKey: UserDef.kTogglingAlphanumericalModeWithLShift.rawValue + ) UserDefaults.standard.setDefault(mgrPrefs.usingHotKeySCPC, forKey: UserDef.kUsingHotKeySCPC.rawValue) UserDefaults.standard.setDefault(mgrPrefs.usingHotKeyAssociates, forKey: UserDef.kUsingHotKeyAssociates.rawValue) @@ -316,6 +320,8 @@ public enum mgrPrefs { UserDefaults.standard.synchronize() } + // MARK: - Settings (Tier 1) + @UserDefault(key: UserDef.kIsDebugModeEnabled.rawValue, defaultValue: false) static var isDebugModeEnabled: Bool @@ -398,6 +404,11 @@ public enum mgrPrefs { @UserDefault(key: UserDef.kAlsoConfirmAssociatedCandidatesByEnter.rawValue, defaultValue: false) static var keepReadingUponCompositionError: Bool + // MARK: - Settings (Tier 2) + + @UserDefault(key: UserDef.kTogglingAlphanumericalModeWithLShift.rawValue, defaultValue: true) + static var togglingAlphanumericalModeWithLShift: Bool + static var minCandidateLength: Int { mgrPrefs.allowBoostingSingleKanjiAsUserPhrase ? 1 : 2 }