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
func handleCapsLockAndAlphanumericalMode(input: InputSignalProtocol) -> Bool? {
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
// .ofEmpty()
@ -1027,13 +1028,13 @@ extension InputHandler {
// Shift
if (input.isUpperCaseASCIILetterKey && delegate.isASCIIMode)
|| (input.isCapsLockOn && input.isShiftHold)
|| (handleCapsLock && input.isShiftHold)
{
return false
}
// Shift
if delegate.isASCIIMode, !input.isCapsLockOn { return false }
if delegate.isASCIIMode, !handleCapsLock { return false }
/// ASCII
/// 使insertText:replacementRange:

View File

@ -82,7 +82,7 @@ public extension SessionCtl {
if event.type == .flagsChanged, event.keyCode == KeyCode.kCapsLock.rawValue {
DispatchQueue.main.async { [weak self] in
let isCapsLockTurnedOn = Self.isCapsLocked
if !isCapsLockTurnedOn, self?.isASCIIMode ?? false {
if PrefMgr.shared.shiftEisuToggleOffTogetherWithCapsLock, !isCapsLockTurnedOn, self?.isASCIIMode ?? false {
self?.isASCIIMode.toggle()
}
guard PrefMgr.shared.showNotificationsWhenTogglingCapsLock else { return }
@ -194,7 +194,7 @@ public extension SessionCtl {
? NSLocalizedString("Alphanumerical 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()
}
}