SessionCtl // Use NSMutableOrderedSet in lieu of Swift.Set.

This commit is contained in:
ShikiSuen 2022-11-19 00:38:36 +08:00
parent fe41d16762
commit 337cf84c8b
2 changed files with 3 additions and 2 deletions

View File

@ -25,7 +25,7 @@ import UpdateSputnik
/// IMKInputController /// IMKInputController
@objc(SessionCtl) // ObjC IMK ObjC @objc(SessionCtl) // ObjC IMK ObjC
public class SessionCtl: IMKInputController { public class SessionCtl: IMKInputController {
public static var allInstances: Set<SessionCtl> = .init() public static var allInstances: NSMutableOrderedSet = .init()
/// ///
public static var areWeNerfing = false public static var areWeNerfing = false
@ -207,7 +207,7 @@ extension SessionCtl {
state = IMEState.ofEmpty() state = IMEState.ofEmpty()
isActivated = true // isActivated = true //
Self.allInstances.insert(self) Self.allInstances.insert(self, at: 0)
setKeyLayout() setKeyLayout()
} }
} }

View File

@ -53,6 +53,7 @@ extension SessionCtl {
// //
if PrefMgr.shared.useIMKCandidateWindow { if PrefMgr.shared.useIMKCandidateWindow {
for instance in Self.allInstances { for instance in Self.allInstances {
guard let instance = instance as? SessionCtl else { continue }
guard let imkC = instance.ctlCandidateCurrent as? CtlCandidateIMK else { continue } guard let imkC = instance.ctlCandidateCurrent as? CtlCandidateIMK else { continue }
if instance.state.isCandidateContainer, !imkC.visible { if instance.state.isCandidateContainer, !imkC.visible {
instance.handle(state: instance.state, replace: false) instance.handle(state: instance.state, replace: false)