From 18c90acda54cb46815a081ecfc36ea8f2b9e93fd Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Mon, 29 Jun 2026 00:12:04 +0800
Subject: [PATCH] Fix custom hotkey settings UI for 8.2.1

---
 src/Scripts/pro_custom_hotkeys_qa.sh |   13 ++++++++++++-
 1 files changed, 12 insertions(+), 1 deletions(-)

diff --git a/src/Scripts/pro_custom_hotkeys_qa.sh b/src/Scripts/pro_custom_hotkeys_qa.sh
index d725620..bb797a4 100755
--- a/src/Scripts/pro_custom_hotkeys_qa.sh
+++ b/src/Scripts/pro_custom_hotkeys_qa.sh
@@ -150,6 +150,17 @@
 require(preferences, "StaticHotkeyInfoRow(", "internal App Grid Space shortcut must remain static")
 require(preferences, "LauncherHotkeySettings.effectiveHotkey(for: .main).displayString", "Settings must display effective App Grid shortcut")
 require(preferences, "LauncherHotkeySettings.effectiveHotkey(for: .quickSearch).displayString", "Settings must display effective Quick Search shortcut")
+require(preferences, "HotkeyPrimaryActionButton", "custom hotkey rows must use the shared action button")
+require(preferences, "ProStatusPill(text: title, style: .locked, compact: true)", "locked custom hotkey action must use the global Pro pill")
+require(preferences, "if canRestore {", "restore-default action must only appear when a custom shortcut exists")
+
+custom_row_start = preferences.find("private struct CustomizableHotkeyInfoRow")
+custom_row_end = preferences.find("private struct HotkeyStatusPill")
+if custom_row_start == -1 or custom_row_end == -1 or custom_row_end <= custom_row_start:
+    fail("could not inspect CustomizableHotkeyInfoRow layout")
+custom_row = preferences[custom_row_start:custom_row_end]
+if ".buttonStyle(.borderedProminent)" in custom_row:
+    fail("custom hotkey rows must not use the default blue borderedProminent Pro button")
 
 require(pro, "case customHotkeys", "ProFeature.customHotkeys is missing")
 require(pro, "case .premiumThemes, .layoutImport, .layoutExport, .unlimitedNotes, .persistentAppSorting, .customHotkeys:", "customHotkeys must be unlocked only by the Pro access state")
@@ -175,5 +186,5 @@
     if "%status%" not in data["hotkeys.error.registrationFailed"]:
         fail(f"{path.name} hotkeys.error.registrationFailed must keep %status% placeholder")
 
-print("PASS Pro custom hotkeys QA: Pro gating, transactional Carbon registration, duplicate-safe effective shortcuts, local recording, and 29-language copy are wired")
+print("PASS Pro custom hotkeys QA: Pro gating, transactional Carbon registration, duplicate-safe effective shortcuts, local recording, Pro-consistent row UI, and 29-language copy are wired")
 PY

--
Gitblit v1.9.3