MainAssembly // Bind two new UserDef items.

This commit is contained in:
ShikiSuen 2023-10-26 21:46:31 +08:00
parent 1f9a9fa0c0
commit 54c1e60d7e
2 changed files with 6 additions and 5 deletions

View File

@ -1019,7 +1019,8 @@ extension InputHandler {
/// - Returns: IMK /// - Returns: IMK
func handleCapsLockAndAlphanumericalMode(input: InputSignalProtocol) -> Bool? { func handleCapsLockAndAlphanumericalMode(input: InputSignalProtocol) -> Bool? {
guard let delegate = delegate else { return nil } guard let delegate = delegate else { return nil }
guard input.isCapsLockOn || delegate.isASCIIMode else { return nil } let handleCapsLock = !PrefMgr.shared.bypassNonAppleCapsLockHandling && input.isCapsLockOn
guard handleCapsLock || delegate.isASCIIMode else { return nil }
// macOS 12 CapsLock // macOS 12 CapsLock
// .ofEmpty() // .ofEmpty()
@ -1027,13 +1028,13 @@ extension InputHandler {
// Shift // Shift
if (input.isUpperCaseASCIILetterKey && delegate.isASCIIMode) if (input.isUpperCaseASCIILetterKey && delegate.isASCIIMode)
|| (input.isCapsLockOn && input.isShiftHold) || (handleCapsLock && input.isShiftHold)
{ {
return false return false
} }
// Shift // Shift
if delegate.isASCIIMode, !input.isCapsLockOn { return false } if delegate.isASCIIMode, !handleCapsLock { return false }
/// ASCII /// ASCII
/// 使insertText:replacementRange: /// 使insertText:replacementRange:

View File

@ -82,7 +82,7 @@ public extension SessionCtl {
if event.type == .flagsChanged, event.keyCode == KeyCode.kCapsLock.rawValue { if event.type == .flagsChanged, event.keyCode == KeyCode.kCapsLock.rawValue {
DispatchQueue.main.async { [weak self] in DispatchQueue.main.async { [weak self] in
let isCapsLockTurnedOn = Self.isCapsLocked let isCapsLockTurnedOn = Self.isCapsLocked
if !isCapsLockTurnedOn, self?.isASCIIMode ?? false { if PrefMgr.shared.shiftEisuToggleOffTogetherWithCapsLock, !isCapsLockTurnedOn, self?.isASCIIMode ?? false {
self?.isASCIIMode.toggle() self?.isASCIIMode.toggle()
} }
guard PrefMgr.shared.showNotificationsWhenTogglingCapsLock else { return } guard PrefMgr.shared.showNotificationsWhenTogglingCapsLock else { return }
@ -194,7 +194,7 @@ public extension SessionCtl {
? NSLocalizedString("Alphanumerical Input Mode", comment: "") + "\n" + status ? NSLocalizedString("Alphanumerical Input Mode", comment: "") + "\n" + status
: NSLocalizedString("Chinese Input Mode", comment: "") + "\n" + status : NSLocalizedString("Chinese Input Mode", comment: "") + "\n" + status
) )
if oldValue, !newValue, Self.isCapsLocked { if PrefMgr.shared.shiftEisuToggleOffTogetherWithCapsLock, oldValue, !newValue, Self.isCapsLocked {
CapsLockToggler.turnOff() CapsLockToggler.turnOff()
} }
} }