From 9fa7fff61ad7049678d984f11514b4e9307d2cce Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Thu, 24 Nov 2022 01:13:00 +0800 Subject: [PATCH] SessionCtl // Bind shareAlphanumericalModeStatusAcrossClients(). --- Source/Modules/SessionCtl_Core.swift | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/Source/Modules/SessionCtl_Core.swift b/Source/Modules/SessionCtl_Core.swift index 7b26af7b..b09234dc 100644 --- a/Source/Modules/SessionCtl_Core.swift +++ b/Source/Modules/SessionCtl_Core.swift @@ -55,13 +55,25 @@ public class SessionCtl: IMKInputController { public var isCapsLocked: Bool { NSEvent.modifierFlags.intersection(.deviceIndependentFlagsMask).contains(.capsLock) } /// 當前這個 SessionCtl 副本是否處於英數輸入模式。 - public var isASCIIMode = false { - didSet { + public var isASCIIMode: Bool { + get { + PrefMgr.shared.shareAlphanumericalModeStatusAcrossClients + ? Self.isASCIIModeForAllClients : isASCIIModeForThisClient + } + set { + if PrefMgr.shared.shareAlphanumericalModeStatusAcrossClients { + Self.isASCIIModeForAllClients = newValue + } else { + isASCIIModeForThisClient = newValue + } resetInputHandler() setKeyLayout() } } + private var isASCIIModeForThisClient = false // 給每個副本用的。 + private static var isASCIIModeForAllClients = false // 給所有副本共用的。 + /// 輸入調度模組的副本。 var inputHandler: InputHandlerProtocol = InputHandler( lm: LMMgr.currentLM, uom: LMMgr.currentUOM, pref: PrefMgr.shared