Ariver
2026-06-12 ea8c934ef857ce7fafb109f60c579a33f5b6bd21
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