From 86f0b4bd20cdec86dfb5bdb7978d1f6ff4af111a Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Fri, 14 Aug 2026 22:41:54 +0800
Subject: [PATCH] [verified] feat: export performance diagnostics
---
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