Fix fly-to vertical centering at non-1 zoom levels #250
@@ -315,8 +315,12 @@ export default function TreePage() {
|
||||
try {
|
||||
const rect = svg.getBoundingClientRect();
|
||||
const scale = handlers.getCurrentZoom ? handlers.getCurrentZoom(svg).k : 1;
|
||||
// family-chart's cardToMiddle scales datum.x by the zoom but NOT
|
||||
// datum.y (a library bug), so vertical centering is only correct at
|
||||
// scale 1 and drifts by datum.y·(k−1) otherwise — landing "below the
|
||||
// tree". Pre-multiply y by the scale to cancel the missing ·k.
|
||||
handlers.cardToMiddle({
|
||||
datum: xy,
|
||||
datum: { x: xy.x, y: xy.y * scale },
|
||||
svg,
|
||||
svg_dim: { width: rect.width, height: rect.height },
|
||||
scale,
|
||||
|
||||
Reference in New Issue
Block a user