Ariver
2026-06-09 6a49b26ff3ef989844673cb77d2700404242c424
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 = [