From 146fbcf6430d2513df7fb536c7e9ace81f1e57b9 Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Tue, 09 Jun 2026 21:45:32 +0800
Subject: [PATCH] Fix Quick Switch grouped display visuals

---
 C1.source/Tests/AlignerCoreTests/AlignerCoreTests.swift |   73 ++++++++++++++++++++++++++++++++++--
 1 files changed, 68 insertions(+), 5 deletions(-)

diff --git a/C1.source/Tests/AlignerCoreTests/AlignerCoreTests.swift b/C1.source/Tests/AlignerCoreTests/AlignerCoreTests.swift
index 11c41ed..298f686 100644
--- a/C1.source/Tests/AlignerCoreTests/AlignerCoreTests.swift
+++ b/C1.source/Tests/AlignerCoreTests/AlignerCoreTests.swift
@@ -212,12 +212,25 @@
         let record = makeWindowRecord(
             title: "Closed Document.md",
             hasAXBacking: false,
-            isOnscreen: false,
-            spaceIDs: [5]
+            isOnscreen: false
         )
 
         XCTAssertFalse(WindowEnumerationPolicy.shouldInclude(record))
         XCTAssertNil(WindowEnumerationPolicy.window(from: record))
+    }
+
+    func testWindowEnumerationPolicyKeepsCGOnlyOffscreenWindowsWithKnownSpaceIDs() {
+        let record = makeWindowRecord(
+            title: "Other Space Document.md",
+            hasAXBacking: false,
+            isOnscreen: false,
+            spaceIDs: [5]
+        )
+
+        let window = WindowEnumerationPolicy.window(from: record)
+
+        XCTAssertEqual(window?.title, "Other Space Document.md")
+        XCTAssertEqual(window?.spaceIDs, [5])
     }
 
     func testWindowEnumerationPolicyKeepsAXBackedOffscreenWindows() {
@@ -283,13 +296,13 @@
         XCTAssertNil(WindowEnumerationPolicy.window(from: tinyRecord))
     }
 
-    func testWindowEnumerationPolicyKeepsShottrCGOnlyAnnotationWindow() {
+    func testWindowEnumerationPolicyExcludesClosedShottrCGPlaceholderButKeepsVisibleWindow() {
         let shottrApp = AlignerApp(
             bundleIdentifier: "cc.ffitch.shottr",
             name: "Shottr",
             category: .generic
         )
-        let annotationRecord = WindowEnumerationRecord(
+        let closedPlaceholderRecord = WindowEnumerationRecord(
             id: 78,
             app: shottrApp,
             activationPolicy: .accessory,
@@ -298,6 +311,16 @@
             subrole: .standard,
             hasAXBacking: false,
             isOnscreen: false
+        )
+        let visibleRecord = WindowEnumerationRecord(
+            id: 79,
+            app: shottrApp,
+            activationPolicy: .accessory,
+            title: "Shottr",
+            size: CGSize(width: 1710, height: 997),
+            subrole: .standard,
+            hasAXBacking: false,
+            isOnscreen: true
         )
         let utilityRecord = WindowEnumerationRecord(
             id: 102,
@@ -310,10 +333,50 @@
             isOnscreen: false
         )
 
-        XCTAssertEqual(WindowEnumerationPolicy.window(from: annotationRecord)?.title, "Shottr")
+        XCTAssertNil(WindowEnumerationPolicy.window(from: closedPlaceholderRecord))
+        XCTAssertEqual(WindowEnumerationPolicy.window(from: visibleRecord)?.title, "Shottr")
         XCTAssertNil(WindowEnumerationPolicy.window(from: utilityRecord))
     }
 
+    func testWindowEnumerationPolicyKeepsFinderCGOnlyOffscreenMainWindows() {
+        let finderApp = AlignerApp(
+            bundleIdentifier: "com.apple.finder",
+            name: "访达",
+            category: .finder
+        )
+        let record = WindowEnumerationRecord(
+            id: 83_664,
+            app: finderApp,
+            title: "Screencapture",
+            size: CGSize(width: 920, height: 436),
+            subrole: .standard,
+            hasAXBacking: false,
+            isOnscreen: false
+        )
+        let emptyTitleRecord = WindowEnumerationRecord(
+            id: 83_665,
+            app: finderApp,
+            title: "",
+            size: CGSize(width: 920, height: 436),
+            subrole: .standard,
+            hasAXBacking: false,
+            isOnscreen: false
+        )
+        let tinyRecord = WindowEnumerationRecord(
+            id: 83_666,
+            app: finderApp,
+            title: "Finder Utility",
+            size: CGSize(width: 80, height: 40),
+            subrole: .standard,
+            hasAXBacking: false,
+            isOnscreen: false
+        )
+
+        XCTAssertEqual(WindowEnumerationPolicy.window(from: record)?.title, "Screencapture")
+        XCTAssertNil(WindowEnumerationPolicy.window(from: emptyTitleRecord))
+        XCTAssertNil(WindowEnumerationPolicy.window(from: tinyRecord))
+    }
+
     func testWindowEnumerationPolicyKeepsMinimizedAndFullscreenCGOnlyOffscreenWindows() {
         let minimized = makeWindowRecord(
             title: "Minimized Document.md",

--
Gitblit v1.9.3