Ariver
2026-06-19 5ca15477a3f2fe590526bc5845482003683c3c29
Refine app grid material background
3 files modified
1 files added
63 ■■■■■ changed files
src/Apptag/ContentView.swift 2 ●●● patch | view | raw | blame | history
src/Apptag/Info.plist 4 ●●●● patch | view | raw | blame | history
src/CHANGELOG.md 7 ●●●●● patch | view | raw | blame | history
src/Scripts/app_grid_material_background_qa.sh 50 ●●●●● patch | view | raw | blame | history
src/Apptag/ContentView.swift
@@ -492,7 +492,7 @@
    var body: some View {
        ZStack {
            if shouldRenderAppGridBehindQuickSearch {
                VisualEffectView(material: .hudWindow, blendingMode: .behindWindow)
                VisualEffectView(material: .contentBackground, blendingMode: .behindWindow)
                    .ignoresSafeArea()
                    .allowsHitTesting(false)
            }
src/Apptag/Info.plist
@@ -19,9 +19,9 @@
    <key>CFBundlePackageType</key>
    <string>APPL</string>
    <key>CFBundleShortVersionString</key>
    <string>7.9.2</string>
    <string>7.9.3</string>
    <key>CFBundleVersion</key>
    <string>20260617.2028</string>
    <string>20260619.2012</string>
    <key>LSApplicationCategoryType</key>
    <string>public.app-category.utilities</string>
    <key>LSMinimumSystemVersion</key>
src/CHANGELOG.md
@@ -1,5 +1,12 @@
# TagLauncher Changelog
## [7.9.3] — 2026-06-19
- 优化 App Grid 背景材质:底层从 HUD 风格切换为更适合内容区域的 macOS `contentBackground` material,让容器之间的空白区域更像统一的原生材质表面
- 保持 App Grid 交互不变:不改布局、拖拽、Quick Search、卡片绘制、窗口层级和点击命中逻辑
- 新增 `app_grid_material_background_qa.sh`,防止 App Grid 背景材质回退并确认背景层保持不可点击
- 版本号更新为 `7.9.3`,Build 更新为 `20260619.2012`
## [7.9.2] — 2026-06-17
- 恢复 App Grid 标签列表 hover 自动滚动:鼠标停到某个标签时会自动滚动到对应容器,点击标签仍保持立即滚动
src/Scripts/app_grid_material_background_qa.sh
New file
@@ -0,0 +1,50 @@
#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
CONTENT_VIEW_SWIFT="$ROOT_DIR/Apptag/ContentView.swift"
fail() {
  printf 'FAIL: %s\n' "$*" >&2
  exit 1
}
[[ -f "$CONTENT_VIEW_SWIFT" ]] || fail "missing ContentView.swift"
python3 - "$CONTENT_VIEW_SWIFT" <<'PY'
import pathlib
import re
import sys
content = pathlib.Path(sys.argv[1]).read_text(encoding="utf-8")
def fail(message: str) -> None:
    print(f"FAIL: {message}", file=sys.stderr)
    sys.exit(1)
def require(pattern: str, source: str, message: str) -> None:
    if not re.search(pattern, source, re.S):
        fail(message)
require(
    r"if\s+shouldRenderAppGridBehindQuickSearch\s*\{\s*"
    r"VisualEffectView\(material:\s*\.contentBackground,\s*blendingMode:\s*\.behindWindow\)"
    r"(?P<body>.*?)\.ignoresSafeArea\(\)"
    r"(?P<body2>.*?)\.allowsHitTesting\(false\)",
    content,
    "App Grid must use a non-interactive contentBackground material behind all content",
)
if re.search(
    r"if\s+shouldRenderAppGridBehindQuickSearch\s*\{\s*"
    r"VisualEffectView\(material:\s*\.hudWindow,\s*blendingMode:\s*\.behindWindow\)",
    content,
    re.S,
):
    fail("App Grid background must not regress to hudWindow material")
print("PASS: App Grid material background semantics are guarded")
PY