Skip to content

0.7.2 - rowspan bbox shrink fix

Choose a tag to compare

@pinin4fjords pinin4fjords released this 18 May 11:13
d923696

Patch release fixing a layout regression visible in v0.7.1.

_fan_source_inputs_upward (Stage 6.2) lifts source-input chains above the trunk to fill empty top space, but the bbox bottom shrink (Stage 6.13) couldn't then trim the box: its row-mate predicate counted any Y-overlapping section as a mate, which made the bug self-protecting. An LR/RL section that declares grid_row_span > 1 but whose content fits in one row had its pre-shrink bbox extend into the claimed-but-unfilled lower rows, Y-overlap a row-r+1 neighbour, and the neighbour then pinned the bottom -- blocking the very shrink that would remove the overlap.

Most visible on the nf-core/differentialabundance metro map, where section 1 (data_prep, rowspan=2) ended mid-air between row 0 and row 1.

The row-mate predicate now splits by direction: TB sections keep the Y-overlap check (section placement grows TB bbox_h by section_y_gap so fold-style TB sections visually span into their row-r+1 target); LR/RL sections match on the starting grid row only, with the other section's rowspan respected. The grid-row reservation from rowspan>1 is preserved -- auto-placed sections in the same column still skip the claimed rows; only bbox sizing is corrected.

Three of 54 gallery fixtures change visually (pure bbox shrinks, no station/edge movement):

  • differentialabundance: data_prep bbox_h 508.8 -> 392.0
  • differentialabundance_default: data_prep bbox_h 508.8 -> 392.0
  • genomeassembly_staggered: scaffolding bbox_h 196.3 -> 188.2

Other 51 fixtures are byte-identical.

#382

Full Changelog: 0.7.1...0.7.2