From 14a1efc86d0295be3a0d3fe1ebe7b8080266da2d Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Mon, 13 Jul 2026 16:23:44 +0800
Subject: [PATCH] docs: clean Aligner migration metadata

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

diff --git a/C1.source/Sources/AlignerCore/Windows/WindowEnumerationPolicy.swift b/C1.source/Sources/AlignerCore/Windows/WindowEnumerationPolicy.swift
index 586fc83..359bc1f 100644
--- a/C1.source/Sources/AlignerCore/Windows/WindowEnumerationPolicy.swift
+++ b/C1.source/Sources/AlignerCore/Windows/WindowEnumerationPolicy.swift
@@ -22,6 +22,7 @@
     public let activationPolicy: AlignerActivationPolicy
     public let title: String
     public let size: CGSize
+    public let frame: CGRect?
     public let subrole: AlignerWindowSubrole
     public let isMinimized: Bool
     public let isFullscreen: Bool
@@ -40,6 +41,7 @@
         title: String,
         identifierSource: AlignerWindow.IdentifierSource = .cgWindow,
         size: CGSize,
+        frame: CGRect? = nil,
         subrole: AlignerWindowSubrole,
         isMinimized: Bool = false,
         isFullscreen: Bool = false,
@@ -57,6 +59,7 @@
         self.activationPolicy = activationPolicy
         self.title = title
         self.size = size
+        self.frame = frame
         self.subrole = subrole
         self.isMinimized = isMinimized
         self.isFullscreen = isFullscreen
@@ -90,6 +93,24 @@
         return record.isMinimized || record.isFullscreen || isLargeEnough(record.size)
     }
 
+    public static func shouldIncludeAXOnlyRecord(
+        identifierSource: AlignerWindow.IdentifierSource,
+        isMinimized: Bool,
+        isFullscreen: Bool,
+        spaceIDs: [UInt64]
+    ) -> Bool {
+        if identifierSource == .syntheticAX {
+            return isMinimized
+        }
+        if isMinimized {
+            return true
+        }
+        if isFullscreen {
+            return !spaceIDs.isEmpty
+        }
+        return false
+    }
+
     private static func hasSupportedActivationPolicy(_ record: WindowEnumerationRecord) -> Bool {
         record.activationPolicy == .regular
             || (record.activationPolicy == .accessory && isKnownAccessoryMainWindow(record))
@@ -106,6 +127,7 @@
             isMinimized: record.isMinimized,
             isFullscreen: record.isFullscreen,
             isGhost: record.isGhost,
+            frame: record.frame,
             spaceIDs: record.spaceIDs
         )
     }

--
Gitblit v1.9.3