← Commit history

v1.9.15: restore-before-capture

John Lauer ·d1cf4c2cda ·1mo ago ·parent 7f0667a
4 files changed +17−6
BRIDGE_VERSION+1−1
@@ -1 +1 @@-1.9.17\ No newline at end of file+1.9.15\ 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.17",-    "url": "https://wiki.adom.inc/download/adom/fusion-bridge/1.9.17/adom-bridge-fusion-v1.9.17.zip",-    "sha256": "6d258b25de5958700f179e1c7efcc3184b781c7962387084ccb9da35677e7eda",-    "size": 359915,+    "version": "1.9.15",+    "url": "https://wiki.adom.inc/download/adom/fusion-bridge/1.9.15/adom-bridge-fusion-v1.9.15.zip",+    "sha256": "dc52de09c7277e17ee595100112e0defc9796cc0c348c534d7575820a54ee7cd",+    "size": 360197,     "verbPrefixes": [         "fusion_"     ],
bridge.json+1−1
@@ -2,7 +2,7 @@   "manifest_version": 1,   "name": "fusion360",   "displayName": "Autodesk Fusion 360",-  "version": "1.9.17",+  "version": "1.9.15",   "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.",
handlers/fusion_ui.py+11
@@ -304,6 +304,17 @@ PW_RENDERFULLCONTENT = 0x00000002  def screenshot_hwnd(hwnd: int, label: str = "") -> dict:     """Capture any window by HWND. Returns {success, savedTo, sizeKB}."""+    # A MINIMIZED window has a degenerate rect and PrintWindow hands back a blank frame -+    # the 870-byte gallery bug (2026-08-15): the launch envelope minimizes Fusion, and every+    # later capture stayed blank. Restore WITHOUT activation, pinned to the BOTTOM of the+    # z-order, so the capture renders while the user's foreground stays untouched.+    try:+        if user32.IsIconic(hwnd):+            user32.ShowWindow(hwnd, 4)  # SW_SHOWNOACTIVATE+            user32.SetWindowPos(hwnd, 1, 0, 0, 0, 0, 0x0001 | 0x0002 | 0x0010)  # HWND_BOTTOM, NOSIZE|NOMOVE|NOACTIVATE+            time.sleep(0.6)  # give Qt a repaint+    except Exception:+        pass     left, top, right, bottom = _get_window_rect(hwnd)     width = right - left     height = bottom - top