From cba722f8a207982ade9e941eca3e6070e8705749 Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Sat, 20 Jun 2026 13:01:49 +0800
Subject: [PATCH] Commit single-window app shortcuts on first key
---
C1.source/Sources/Aligner/QuickSwitchSessionController.swift | 22 ++++++++++++++++++++++
1 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/C1.source/Sources/Aligner/QuickSwitchSessionController.swift b/C1.source/Sources/Aligner/QuickSwitchSessionController.swift
index 18d84f0..f6b860a 100644
--- a/C1.source/Sources/Aligner/QuickSwitchSessionController.swift
+++ b/C1.source/Sources/Aligner/QuickSwitchSessionController.swift
@@ -20,6 +20,7 @@
private let systemCriticalWindowDetector: any SystemCriticalWindowDetecting
private let disableScreenshotRefresh: Bool
private var waterfallViewMode: QuickSwitchWaterfallViewMode
+ private var theme: ThemePreference
private var closeConfirmationRequired: Bool
private let onCloseConfirmationDisabled: (() -> Void)?
private let debugOverlayWidth: CGFloat?
@@ -87,6 +88,7 @@
private var lifecycleResidualVisibleOverlayWindows = 0
var onSnapshotUpdated: (() -> Void)?
var onToggleWaterfallViewMode: (() -> Void)?
+ var onToggleTheme: (() -> Void)?
private struct PendingCloseVerification {
let request: QuickSwitchCloseRequest
@@ -123,6 +125,7 @@
systemCriticalWindowDetector: any SystemCriticalWindowDetecting = CGWindowSystemCriticalWindowDetector(),
disableScreenshotRefresh: Bool = false,
waterfallViewMode: QuickSwitchWaterfallViewMode = .verticalColumns,
+ theme: ThemePreference = .light,
closeConfirmationRequired: Bool = true,
onCloseConfirmationDisabled: (() -> Void)? = nil,
debugHoveredAppGroupIndex: Int? = nil,
@@ -139,6 +142,7 @@
self.systemCriticalWindowDetector = systemCriticalWindowDetector
self.disableScreenshotRefresh = disableScreenshotRefresh
self.waterfallViewMode = waterfallViewMode
+ self.theme = theme
self.closeConfirmationRequired = closeConfirmationRequired
self.onCloseConfirmationDisabled = onCloseConfirmationDisabled
self.debugOverlayWidth = debugOverlayWidth
@@ -216,6 +220,9 @@
view.onToggleWaterfallViewMode = { [weak self] in
self?.onToggleWaterfallViewMode?()
}
+ view.onToggleTheme = { [weak self] in
+ self?.onToggleTheme?()
+ }
view.setSuppressEventInput(!debugMouseSequence.isEmpty || !debugKeySequence.isEmpty)
view.onRequestClose = { [weak self] request in
self?.requestClose(request)
@@ -227,6 +234,7 @@
}
view.setCloseConfirmationRequired(closeConfirmationRequired)
view.setWaterfallViewMode(waterfallViewMode)
+ view.setTheme(theme)
view.apply(viewModel: nil)
view.beginPerformanceFirstFrameMeasurement()
coordinator.openQuickSwitch()
@@ -320,6 +328,20 @@
onSnapshotUpdated?()
}
+ func setTheme(_ theme: ThemePreference) {
+ guard self.theme != theme else { return }
+
+ self.theme = theme
+ DevelopmentDiagnostics.log("quickSwitch.session.themeChanged", [
+ "theme": theme.rawValue,
+ "visible": isVisible,
+ "hasViewModel": currentViewModel != nil
+ ])
+
+ view.setTheme(theme)
+ onSnapshotUpdated?()
+ }
+
func reportDictionary() -> [String: Any] {
let spaceCount = currentViewModel?.spaceCount ?? 0
let appCount = currentViewModel?.appShelf.count ?? 0
--
Gitblit v1.9.3