fix: a repaired source is reconciled above the validation line, not below it
`math_dialog_sync_form()` wrote the label and then moved a node whose source names an unacquired channel -- a mutation that changes what `math_dialog_problem()` reports. With the sync re-entry now guarded, the nested call that used to repair the label is suppressed, so the line kept describing a source that had just been fixed and left `Apply` insensitive until the next mutation. The reconcile moves above the write and the dropdown reuses its list.
This commit is contained in:
1 parent
f238e717b2
commit
8bc1fe8b5c
2 files changed
+23
-15
No files matched your search
@@ -25,7 +25,8 @@ Part of [CLAUDE.md](../../CLAUDE.md). These are rules that cost a defect to lear
|
||||
two-click protocol is gone), drag a box to move it; **wheel zooms about the pointer, background
|
||||
drag pans, `f` fits, `Ctrl+0` resets**.
|
||||
Its widgets are created once and only shown, hidden and set by `math_dialog_sync()`, so no rebuild
|
||||
can invalidate a live callback handle -- the same shape the measurements dialog uses. `UDPSCOPE_PROBE_MATH_MS` defines two graphs and opens the editor (a construction crash test
|
||||
can invalidate a live callback handle -- the same shape the measurements dialog uses.
|
||||
`UDPSCOPE_PROBE_MATH_MS` defines two graphs and opens the editor (a construction crash test
|
||||
as much as a state check), and the dump prints each derived channel's extremes beside the
|
||||
source's. Read it on the fast mock, where the two assertions that matter are **`gaps=0`** (the
|
||||
math is on the producer thread, so what it can break is packet capture, never the frame rate)
|
||||
|
||||
Reference in new issue
Block a user