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/Aligner/QuickSwitchSnapshotLoader.swift |   67 ++++++++++++++++++++++++++-------
 1 files changed, 52 insertions(+), 15 deletions(-)

diff --git a/C1.source/Sources/Aligner/QuickSwitchSnapshotLoader.swift b/C1.source/Sources/Aligner/QuickSwitchSnapshotLoader.swift
index 7421c9f..8d45239 100644
--- a/C1.source/Sources/Aligner/QuickSwitchSnapshotLoader.swift
+++ b/C1.source/Sources/Aligner/QuickSwitchSnapshotLoader.swift
@@ -62,11 +62,18 @@
     private let appCount: Int
     private let windowsPerApp: Int
     private let mode: FixtureQuickSwitchMode
+    private let usesMultipleDisplays: Bool
 
-    init(appCount: Int, windowsPerApp: Int = 1, mode: FixtureQuickSwitchMode = .layout) {
+    init(
+        appCount: Int,
+        windowsPerApp: Int = 1,
+        mode: FixtureQuickSwitchMode = .layout,
+        usesMultipleDisplays: Bool = false
+    ) {
         self.appCount = max(1, appCount)
         self.windowsPerApp = max(1, windowsPerApp)
         self.mode = mode
+        self.usesMultipleDisplays = usesMultipleDisplays
     }
 
     func snapshot() throws -> QuickSwitchSnapshotLoad {
@@ -81,18 +88,8 @@
     }
 
     private func layoutSnapshot() -> QuickSwitchSnapshotLoad {
-        let displayUUID = "fixture-display-a"
-        let displays = [
-            AlignerDisplay(
-                uuid: displayUUID,
-                physical: true,
-                spaces: [
-                    AlignerSpace(id: 1, type: .user, displayUUID: displayUUID, index: 1),
-                    AlignerSpace(id: 2, type: .fullscreen, displayUUID: displayUUID, index: 2),
-                    AlignerSpace(id: 3, type: .user, displayUUID: displayUUID, index: 3)
-                ]
-            )
-        ]
+        let displays = layoutDisplays()
+        let spaceIDs: [UInt64] = usesMultipleDisplays ? [1, 2, 3, 4, 5] : [1, 2, 3]
         let windows = (0..<appCount).flatMap { index in
             let app = AlignerApp(
                 bundleIdentifier: "com.example.fixture.\(String(format: "%03d", index))",
@@ -103,7 +100,9 @@
 
             return (0..<windowsPerApp).map { windowIndex in
                 let spaceSeed = index + windowIndex
-                let spaceID = spaceSeed % 5 == 0 ? UInt64(2) : UInt64(spaceSeed % 2 == 0 ? 1 : 3)
+                let spaceID = usesMultipleDisplays
+                    ? spaceIDs[spaceSeed % spaceIDs.count]
+                    : UInt64(spaceSeed % 5 == 0 ? 2 : spaceSeed % 2 == 0 ? 1 : 3)
                 return AlignerWindow(
                     id: UInt32(10_000 + index * 100 + windowIndex),
                     app: app,
@@ -116,10 +115,48 @@
 
         return QuickSwitchSnapshotLoad(
             snapshot: QuickSwitchSnapshotBuilder.snapshot(displays: displays, windows: windows),
-            currentSpaceIDs: [2]
+            currentSpaceIDs: usesMultipleDisplays ? [2, 4] : [2]
         )
     }
 
+    private func layoutDisplays() -> [AlignerDisplay] {
+        let displayAUUID = "fixture-display-a"
+        guard usesMultipleDisplays else {
+            return [
+                AlignerDisplay(
+                    uuid: displayAUUID,
+                    physical: true,
+                    spaces: [
+                        AlignerSpace(id: 1, type: .user, displayUUID: displayAUUID, index: 1),
+                        AlignerSpace(id: 2, type: .fullscreen, displayUUID: displayAUUID, index: 2),
+                        AlignerSpace(id: 3, type: .user, displayUUID: displayAUUID, index: 3)
+                    ]
+                )
+            ]
+        }
+
+        let displayBUUID = "fixture-display-b"
+        return [
+            AlignerDisplay(
+                uuid: displayAUUID,
+                physical: true,
+                spaces: [
+                    AlignerSpace(id: 1, type: .user, displayUUID: displayAUUID, index: 1),
+                    AlignerSpace(id: 2, type: .fullscreen, displayUUID: displayAUUID, index: 2),
+                    AlignerSpace(id: 3, type: .user, displayUUID: displayAUUID, index: 3)
+                ]
+            ),
+            AlignerDisplay(
+                uuid: displayBUUID,
+                physical: true,
+                spaces: [
+                    AlignerSpace(id: 4, type: .user, displayUUID: displayBUUID, index: 1),
+                    AlignerSpace(id: 5, type: .user, displayUUID: displayBUUID, index: 2)
+                ]
+            )
+        ]
+    }
+
     private func candidateFilteringSnapshot() -> QuickSwitchSnapshotLoad {
         let displayUUID = "fixture-display-a"
         let displays = [

--
Gitblit v1.9.3