From 87701fbacd93e58c30bdfc3d5f250c4daeb409a1 Mon Sep 17 00:00:00 2001 From: Qiu Yuzhou Date: Sun, 4 Oct 2026 22:54:31 +0800 Subject: [PATCH] fix(ui): prevent sidebar toolbar flicker Keep a hidden, zero-size detail toolbar item across destinations. Crossing zero detail items triggers a native toolbar background fade, including persistent sidebar controls. --- ShadowsocksX-NG2/App/MainWindowView.swift | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/ShadowsocksX-NG2/App/MainWindowView.swift b/ShadowsocksX-NG2/App/MainWindowView.swift index 5bf5aaac..58a8c14e 100644 --- a/ShadowsocksX-NG2/App/MainWindowView.swift +++ b/ShadowsocksX-NG2/App/MainWindowView.swift @@ -61,6 +61,18 @@ struct MainWindowView: View { } } detail: { destinationView + .toolbar { + // macOS 会在详情工具栏项从零变为非零(或反向)时淡入淡出整条 + // 工具栏背景,连带常驻边栏按钮闪烁。保留不可见的零尺寸项, + // 让各页面始终有详情工具栏内容;EmptyView / Spacer 会被系统省略。 + ToolbarItem(id: "workspace-detail-toolbar-anchor", placement: .primaryAction) { + Color.clear + .frame(width: 0, height: 0) + .hidden() + .allowsHitTesting(false) + .accessibilityHidden(true) + } + } } .onChange(of: workflow.tree, initial: true) { homeServerList.update(tree: workflow.tree, activeTargetID: control.snapshot.activeTarget?.id)