From e22941e8ae469716d55f1b47d12ab385468b5d05 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Tue, 5 Sep 2023 15:28:34 +0800 Subject: [PATCH] CtlCandidateTDK // Auto-close out-of-date window instances. --- .../CandidateWindow/TDKCandidates/CtlCandidateTDK.swift | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Packages/vChewing_CandidateWindow/Sources/CandidateWindow/TDKCandidates/CtlCandidateTDK.swift b/Packages/vChewing_CandidateWindow/Sources/CandidateWindow/TDKCandidates/CtlCandidateTDK.swift index b557f6b5..67930a46 100644 --- a/Packages/vChewing_CandidateWindow/Sources/CandidateWindow/TDKCandidates/CtlCandidateTDK.swift +++ b/Packages/vChewing_CandidateWindow/Sources/CandidateWindow/TDKCandidates/CtlCandidateTDK.swift @@ -31,8 +31,12 @@ public class CtlCandidateTDK: CtlCandidate, NSWindowDelegate { public var useMouseScrolling: Bool = true private static var thePool: CandidatePool = .init(candidates: []) private static var currentView: NSView = .init() - public static var currentWindow: NSWindow? public static var currentMenu: NSMenu? + public static var currentWindow: NSWindow? { + willSet { + currentWindow?.orderOut(nil) + } + } @available(macOS 10.15, *) private var theView: some View { @@ -81,6 +85,7 @@ public class CtlCandidateTDK: CtlCandidate, NSWindowDelegate { super.init(layout) window = panel + Self.currentWindow = panel window?.delegate = self currentLayout = layout }