| | |
| | | "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", |
| | |
| | | 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*\}", |