fix: the plot's two side margins are balanced, and the dump outlives its widgets
With the axis titles gone the left gutter was 200 px of an 870 px viewport and the right side had no margin at all, so the newest tick's label was drawn half outside the plot and the newest sample's ink landed on the frame. Two causes on the left. The reservation covered `format_si()`'s `%.3g` fallback (`-1.23e-45`), which no signal on an `Si` axis produces -- the widest real label for a unitless axis is `-1.23m` -- and `note_y_gutter()` added 6 px of slack to a figure that is already the maximum of the labels and last frame's floor, making the gutter a ratchet that climbed to its 200 px cap in ~19 frames. It settles at 104 px now, with `axes.w changes: 1` where it read 17. The right side did not exist: a plot's `axes` rect reached the viewport's right edge by construction. `deps/plotter` gains `Plot::set_right_gutter()` and `Figure::set_right_gutter()` -- a want rather than a measurement, since nothing is drawn there, imposed figure-wide so the rows end on one column as they already start on one. udpscope asks for half the widest time label plus the label padding (59 px), x labels being centred on their tick. Separately: the exit dump asked two destroyed widgets for their size, which is where the "exactly two Gtk-CRITICALs" baseline came from. The pointer is freed memory by then, so a run that had destroyed other windows first (UDPSCOPE_PROBE_HELP_MS opens three) segfaulted in the middle of the dump instead. Both sizes are captured on the tick; a clean run now carries no critical. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
1 parent
811c6d80f0
commit
62df049f53
7 files changed
+153
-39
No files matched your search
Vendored
+1
-1
Submodule deps/plotter updated: 58473db384...bee318870f.
Reference in new issue
Block a user