Merge remote-tracking branch 'origin/glass-cockpit-refit'

This commit is contained in:
Joe DiPrima
2026-07-29 19:56:31 -05:00
4 changed files with 151 additions and 13 deletions
+30
View File
@@ -139,6 +139,36 @@ at exactly 777,333 after the re-snap fired). Save fires on `WM_EXITSIZEMOVE` (su
since it writes as soon as a drag finishes) with a teardown write as backstop. This is the native
analogue of TeslaRel410 `emulator/pod-launch`'s per-rig `--bridge-pos`/`--layout` placement args.
### `,noframe` — per-window chrome removal (2026-07-29) [T2 live]
Append it to a window's line and that window comes up with no title bar or border (`WS_POPUP`) —
for a multi-monitor wall where the chrome is just noise:
```
Heat MFD=1920,0,657,539,noframe
```
**The workflow is deliberately two-stage, and this is the last step:** run with
`BT_GLASS_LAYOUT=save` and drag the windows where you want them (they have title bars, so it is
the normal sticky-layout flow) → quit → hand-edit the cfg and append `,noframe` to the ones you
want bare. From then on those windows are frameless **and pinned** — with no caption there is
nothing to drag them by, which is the point: the arrangement is finished. Delete the flag to get
the frame back.
Options are comma-separated after the numbers and **unknown ones are ignored**, so an older build
reading a newer file loses the option but never the line — the `bindings.txt` grammar rule
applied here.
The one thing it must not do is eat itself: **`SaveLayout` rewrites the WHOLE file** (any later
drag of a framed window triggers it), so it writes the flag back for every window carrying it.
And the flag is read BEFORE frame sizing (a `LoadLayout(quiet)` pre-pass), because
`AdjustWindowRect` — and therefore `ComputeLayout`'s ring placement — depends on whether a window
carries chrome.
Verified live: two flagged windows came up caption-less while the other five kept theirs, a click
still dispatched on the frameless radar (`CLICK 'Secondary / Radar' addr=0x18`), and a
finished-drag save round-tripped both flags back into the file.
**Verified 2026-07-26 [T2]:** `BT_RIOBANK_LOG=1` dumps every bank's rects;
`scratchpad/checkbank.py` reports the per-bank census and proves no address is SHADOWED (has a
point no earlier button covers); `scratchpad/clickbank.py` then posts a real click at every