From 71acd11e8d5349672da8b1b6bb254e9a25ff4e51 Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Wed, 10 Jun 2026 11:59:13 +0800
Subject: [PATCH] Fix Space Lane tile visuals

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

diff --git a/C1.source/Sources/AlignerCore/Windows/WindowEnumerationPolicy.swift b/C1.source/Sources/AlignerCore/Windows/WindowEnumerationPolicy.swift
index 75bc119..586fc83 100644
--- a/C1.source/Sources/AlignerCore/Windows/WindowEnumerationPolicy.swift
+++ b/C1.source/Sources/AlignerCore/Windows/WindowEnumerationPolicy.swift
@@ -76,17 +76,23 @@
 
     public static func shouldInclude(_ record: WindowEnumerationRecord) -> Bool {
         guard record.id != 0 else { return false }
-        guard record.activationPolicy == .regular else { return false }
+        guard hasSupportedActivationPolicy(record) else { return false }
         guard isSupportedSubrole(record.subrole) else { return false }
         guard !record.app.isHidden || record.isFullscreen else { return false }
         guard !record.isGhost else { return false }
         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 }
 
         return record.isMinimized || record.isFullscreen || isLargeEnough(record.size)
+    }
+
+    private static func hasSupportedActivationPolicy(_ record: WindowEnumerationRecord) -> Bool {
+        record.activationPolicy == .regular
+            || (record.activationPolicy == .accessory && isKnownAccessoryMainWindow(record))
     }
 
     public static func window(from record: WindowEnumerationRecord) -> AlignerWindow? {
@@ -118,7 +124,50 @@
     }
 
     private static func isCGOnlyOffscreenGhost(_ record: WindowEnumerationRecord) -> Bool {
-        record.identifierSource == .cgWindow
+        guard record.identifierSource == .cgWindow,
+              !record.hasAXBacking,
+              !record.isOnscreen,
+              !record.isMinimized,
+              !record.isFullscreen
+        else {
+            return false
+        }
+
+        if !record.spaceIDs.isEmpty {
+            return false
+        }
+
+        return !isKnownCGOnlyOffscreenMainWindow(record)
+    }
+
+    private static func isKnownCGOnlyOffscreenMainWindow(_ record: WindowEnumerationRecord) -> Bool {
+        let trimmedTitle = record.title.trimmingCharacters(in: .whitespacesAndNewlines)
+
+        switch record.app.bundleIdentifier {
+        case "com.apple.finder":
+            return !trimmedTitle.isEmpty && isLargeEnough(record.size)
+        case "io.dcloud.HBuilderX":
+            return !trimmedTitle.isEmpty && isLargeEnough(record.size)
+        default:
+            return false
+        }
+    }
+
+    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

--
Gitblit v1.9.3