From b2a06ec5ebc86c0241e635782ae5a032ab5aad0a Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Thu, 02 Jul 2026 02:43:51 +0800
Subject: [PATCH] Prepare TagLauncher 8.3.2 App Store candidate

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

diff --git a/src/Scripts/usage_tips_qa.sh b/src/Scripts/usage_tips_qa.sh
index be9e0d4..ba86461 100755
--- a/src/Scripts/usage_tips_qa.sh
+++ b/src/Scripts/usage_tips_qa.sh
@@ -316,6 +316,11 @@
     "AppGrid host must intercept usage tips mouseDown/mouseUp events before NSCollectionView app items receive them",
 )
 require(
+    r"guard\s+let\s+self\s*,\s*event\.window\s*===\s*self\.window\s*,\s*self\.handleUsageTipsMouseEvent",
+    app_grid,
+    "usage tips local mouse monitor must only consume events from its own AppGrid window",
+)
+require(
     r"triggerButtons\s*:\s*event\.type\s*==\s*\.leftMouseDown",
     app_grid,
     "usage tips monitor must only trigger page changes on left mouseDown",
@@ -328,6 +333,13 @@
 if re.search(r"handleMouseEventFromHost\s*\(\s*_\s+event\s*:\s*NSEvent,\s*triggerButtons\s*:\s*Bool\s*\).*?target\.mouseDown", app_grid, re.S):
     fail("usage tips host-routed clicks must not redispatch arbitrary mouseDown events")
 
+for function_name in ["usageTipsHostPoint", "usageTipsPoint"]:
+    require(
+        rf"private\s+func\s+{function_name}\s*\(\s*for\s+event\s*:\s*NSEvent\s*\)\s*->\s*NSPoint\s*\{{\s*if\s+event\.window\s*===\s*window\s*\{{(?P<body>.*?)return\s+convert\s*\(\s*event\.locationInWindow\s*,\s*from\s*:\s*nil\s*\)(?P<body2>.*?)\}}\s*return\s+\.zero\s*\}}",
+        app_grid,
+        f"{function_name} must return zero for events outside its own window",
+    )
+
 for token in [
     r"private\s+final\s+class\s+AppGridUsageTipIconButton\s*:\s*NSView\b",
     r"override\s+func\s+acceptsFirstMouse\s*\(\s*for\s+event\s*:\s*NSEvent\?\s*\)\s*->\s*Bool\s*\{\s*true\s*\}",

--
Gitblit v1.9.3