From ea8c934ef857ce7fafb109f60c579a33f5b6bd21 Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Fri, 12 Jun 2026 13:07:05 +0800
Subject: [PATCH] Update candidate filter QA fixture expectation

---
 C1.source/Sources/AlignerCore/Windows/WindowEnumerationPolicy.swift |   32 +++++++++++++++++++++++++++++---
 1 files changed, 29 insertions(+), 3 deletions(-)

diff --git a/C1.source/Sources/AlignerCore/Windows/WindowEnumerationPolicy.swift b/C1.source/Sources/AlignerCore/Windows/WindowEnumerationPolicy.swift
index a219abb..586fc83 100644
--- a/C1.source/Sources/AlignerCore/Windows/WindowEnumerationPolicy.swift
+++ b/C1.source/Sources/AlignerCore/Windows/WindowEnumerationPolicy.swift
@@ -83,6 +83,7 @@
         guard !record.isDesktopElement else { return false }
         guard !record.isSystemCritical else { return false }
         guard record.isInteractable else { return false }
+        guard !isKnownClosedShottrCGPlaceholder(record) else { return false }
         guard !isCGOnlyOffscreenGhost(record) else { return false }
         guard !isKnownClosedDocumentPlaceholder(record) else { return false }
 
@@ -91,7 +92,7 @@
 
     private static func hasSupportedActivationPolicy(_ record: WindowEnumerationRecord) -> Bool {
         record.activationPolicy == .regular
-            || (record.activationPolicy == .accessory && isKnownCGOnlyOffscreenMainWindow(record))
+            || (record.activationPolicy == .accessory && isKnownAccessoryMainWindow(record))
     }
 
     public static func window(from record: WindowEnumerationRecord) -> AlignerWindow? {
@@ -132,6 +133,10 @@
             return false
         }
 
+        if !record.spaceIDs.isEmpty {
+            return false
+        }
+
         return !isKnownCGOnlyOffscreenMainWindow(record)
     }
 
@@ -139,8 +144,8 @@
         let trimmedTitle = record.title.trimmingCharacters(in: .whitespacesAndNewlines)
 
         switch record.app.bundleIdentifier {
-        case "cc.ffitch.shottr":
-            return trimmedTitle == "Shottr" && isLargeEnough(record.size)
+        case "com.apple.finder":
+            return !trimmedTitle.isEmpty && isLargeEnough(record.size)
         case "io.dcloud.HBuilderX":
             return !trimmedTitle.isEmpty && isLargeEnough(record.size)
         default:
@@ -148,6 +153,27 @@
         }
     }
 
+    private static func isKnownAccessoryMainWindow(_ record: WindowEnumerationRecord) -> Bool {
+        let trimmedTitle = record.title.trimmingCharacters(in: .whitespacesAndNewlines)
+
+        return record.app.bundleIdentifier == "cc.ffitch.shottr"
+            && trimmedTitle == "Shottr"
+            && record.isOnscreen
+            && isLargeEnough(record.size)
+    }
+
+    private static func isKnownClosedShottrCGPlaceholder(_ record: WindowEnumerationRecord) -> Bool {
+        let trimmedTitle = record.title.trimmingCharacters(in: .whitespacesAndNewlines)
+
+        return record.app.bundleIdentifier == "cc.ffitch.shottr"
+            && trimmedTitle == "Shottr"
+            && record.identifierSource == .cgWindow
+            && !record.hasAXBacking
+            && !record.isOnscreen
+            && !record.isMinimized
+            && !record.isFullscreen
+    }
+
     private static func isKnownClosedDocumentPlaceholder(_ record: WindowEnumerationRecord) -> Bool {
         let trimmedTitle = record.title.trimmingCharacters(in: .whitespacesAndNewlines)
         return record.identifierSource == .cgWindow

--
Gitblit v1.9.3