mgrPrefs // +togglingAlphanumericalModeWithShift.

This commit is contained in:
ShikiSuen 2022-08-04 21:47:36 +08:00
parent 4a0baa0666
commit 893e49ee6c
2 changed files with 17 additions and 2 deletions

View File

@ -15,7 +15,11 @@ extension Date {
class ShiftKeyUpChecker { class ShiftKeyUpChecker {
init() {} init() {}
private static var checkModifier: NSEvent.ModifierFlags { NSEvent.ModifierFlags.shift } 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 private static let delayInterval = 0.3
@ -39,7 +43,7 @@ class ShiftKeyUpChecker {
print("isLeftShift: \(isLeftShift), isRightShift: \(isRightShift)") print("isLeftShift: \(isLeftShift), isRightShift: \(isRightShift)")
let isKeyDown = let isKeyDown =
event.type == .flagsChanged event.type == .flagsChanged
&& event.modifierFlags.intersection(.deviceIndependentFlagsMask) == checkModifier && checkModifier.contains(event.modifierFlags.intersection(.deviceIndependentFlagsMask))
&& ShiftKeyUpChecker.checkKeyCode.contains(event.keyCode) && ShiftKeyUpChecker.checkKeyCode.contains(event.keyCode)
if isKeyDown { if isKeyDown {
// modifier keydown event // modifier keydown event

View File

@ -46,6 +46,7 @@ public enum UserDef: String, CaseIterable {
case kAutoCorrectReadingCombination = "AutoCorrectReadingCombination" case kAutoCorrectReadingCombination = "AutoCorrectReadingCombination"
case kAlsoConfirmAssociatedCandidatesByEnter = "AlsoConfirmAssociatedCandidatesByEnter" case kAlsoConfirmAssociatedCandidatesByEnter = "AlsoConfirmAssociatedCandidatesByEnter"
case kKeepReadingUponCompositionError = "KeepReadingUponCompositionError" case kKeepReadingUponCompositionError = "KeepReadingUponCompositionError"
case kTogglingAlphanumericalModeWithLShift = "TogglingAlphanumericalModeWithLShift"
case kCandidateTextFontName = "CandidateTextFontName" case kCandidateTextFontName = "CandidateTextFontName"
case kCandidateKeyLabelFontName = "CandidateKeyLabelFontName" case kCandidateKeyLabelFontName = "CandidateKeyLabelFontName"
@ -300,6 +301,9 @@ public enum mgrPrefs {
UserDefaults.standard.setDefault( UserDefaults.standard.setDefault(
mgrPrefs.keepReadingUponCompositionError, forKey: UserDef.kKeepReadingUponCompositionError.rawValue 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.usingHotKeySCPC, forKey: UserDef.kUsingHotKeySCPC.rawValue)
UserDefaults.standard.setDefault(mgrPrefs.usingHotKeyAssociates, forKey: UserDef.kUsingHotKeyAssociates.rawValue) UserDefaults.standard.setDefault(mgrPrefs.usingHotKeyAssociates, forKey: UserDef.kUsingHotKeyAssociates.rawValue)
@ -316,6 +320,8 @@ public enum mgrPrefs {
UserDefaults.standard.synchronize() UserDefaults.standard.synchronize()
} }
// MARK: - Settings (Tier 1)
@UserDefault(key: UserDef.kIsDebugModeEnabled.rawValue, defaultValue: false) @UserDefault(key: UserDef.kIsDebugModeEnabled.rawValue, defaultValue: false)
static var isDebugModeEnabled: Bool static var isDebugModeEnabled: Bool
@ -398,6 +404,11 @@ public enum mgrPrefs {
@UserDefault(key: UserDef.kAlsoConfirmAssociatedCandidatesByEnter.rawValue, defaultValue: false) @UserDefault(key: UserDef.kAlsoConfirmAssociatedCandidatesByEnter.rawValue, defaultValue: false)
static var keepReadingUponCompositionError: Bool static var keepReadingUponCompositionError: Bool
// MARK: - Settings (Tier 2)
@UserDefault(key: UserDef.kTogglingAlphanumericalModeWithLShift.rawValue, defaultValue: true)
static var togglingAlphanumericalModeWithLShift: Bool
static var minCandidateLength: Int { static var minCandidateLength: Int {
mgrPrefs.allowBoostingSingleKanjiAsUserPhrase ? 1 : 2 mgrPrefs.allowBoostingSingleKanjiAsUserPhrase ? 1 : 2
} }