← Commit history

v1.9.37: screen-space click fallback

John Lauer ·047fdc3565 · ·parent 2e653c0
4 files changed +21−6
BRIDGE_VERSION+1−1
@@ -1 +1 @@-1.9.36\ No newline at end of file+1.9.37\ No newline at end of file
adom-bridge-fusion-manifest.json+4−4
@@ -1,10 +1,10 @@ {     "manifest_version": 1,     "name": "fusion360",-    "version": "1.9.36",-    "url": "https://wiki.adom.inc/download/adom/fusion-bridge/1.9.36/adom-bridge-fusion-v1.9.36.zip",-    "sha256": "e9c44a4aef4179d46bda5ace301990e4bb343cddd8214ffa37bf7e27363999e1",-    "size": 384038,+    "version": "1.9.37",+    "url": "https://wiki.adom.inc/download/adom/fusion-bridge/1.9.37/adom-bridge-fusion-v1.9.37.zip",+    "sha256": "478062c241e344a8258dacde34281ff237217557ec039af24dc167caa88d8d4a",+    "size": 384345,     "verbPrefixes": [         "fusion_"     ],
bridge.json+1−1
@@ -2,7 +2,7 @@   "manifest_version": 1,   "name": "fusion360",   "displayName": "Autodesk Fusion 360",-  "version": "1.9.36",+  "version": "1.9.37",   "description": "Drive Autodesk Fusion 360 from the cloud: launch Fusion, electronics board layout, design rules, exports (STEP/IGES/STL/3MF/USDZ/OBJ/DXF/DWG/Gerbers/BOM/CPL), fast APS server-indexed cloud search plus browse/recent/file-info/versions, cloud file download/upload and folder creation, and in-app parametric modeling (fusion_run_modeling_script). Never-charge: APS calls are capped to the free tier.",   "homepage": "https://wiki.adom.inc/adom/fusion-bridge",   "author": "Adom Inc.",
server.py+15
@@ -5005,6 +5005,21 @@ def _fusion_click_signin() -> dict:     # nested / stringified in output on 2.0.46) - search recursively, never guess a level.     cm = _find_coordmap(_raw)     sid = cm.get("shotId")+    if not sid:+        # VERSION-PROOF fallback (ab 2.0.46's direct API returns no coordMap at all):+        # compute the click in SCREEN space from the window rect - no shotId needed.+        w_rect = (win.get("rect") or {})+        L = w_rect.get("left"); T = w_rect.get("top")+        W = w_rect.get("width") or 0; H = w_rect.get("height") or 0+        if L is not None and W > 400 and H > 300:+            sx = int(L + W * 0.5); sy = int(T + H * 0.57)+            rr = _unwrap(_ad_call("desktop_click", {"x": sx, "y": sy, "hwnd": int(hwnd),+                                                    "reason": "signing Fusion in for you (clicking Sign In, screen-space fallback)"},+                                  timeout=30))+            okc = rr.get("success") or rr.get("ok") or rr.get("status") == "ok"+            return {"clicked": bool(okc),+                    "why": "screen-space fallback click at (%d,%d) rect %sx%s: %s" % (sx, sy, W, H, "ok" if okc else str(rr.get("error"))[:80]),+                    "via": "screen-fallback"}     if not sid:         return {"clicked": False,                 "why": "screenshot returned no shotId (hwnd=%s raw_keys=%s err=%s)" % (