The two half-height plots were matched once per data load, from
JFJochViewerDatasetInfo: it read both y-label widths and pushed the larger
back into both. A font change never goes through that path - each chart
re-measures its own labels in its FontChange handler - so the padding was
still the width measured in the old font, collapsed to zero, and the two
curves started at different x at 125 % and 150 %.
The pairing now lives in the chart view: each compact plot holds a peer
pointer, and every rebuild re-matches the pair, so a font change fixes
itself. Matched along with the label width:
- the minimum height, taken from the width of the rotated y-axis title
(Qt elided "Spots" to "Sp..." once the font outgrew the 70 px that was
hardcoded for it), and given to both plots so the layout does not hand
the wider-titled one more of the dock;
- the plot area height: the upper plot now paints its x labels transparent
instead of hiding them, so Qt reserves the same label band on both.
The background plot also stops snapping its y axis to zero - it is read
for its shape, not its level, and half a dock is not much to draw it in.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>