update label dimensions alonside font size

This commit is contained in:
Gavin Nishizawa 2023-09-05 19:00:07 -07:00
parent 12e28f5195
commit 8a0204fa54
No known key found for this signature in database
GPG key ID: AE3B177777CE55CD

View file

@ -65,6 +65,7 @@ func withoutGridDiagrams(ctx context.Context, g *d2graph.Graph, layout d2graph.L
return err
}
} else if len(child.ChildrenArray) > 0 {
originalFontSize := child.Text().FontSize
tempGraph := g.ExtractAsNestedGraph(child)
// emulating setting font size with layout
fontSize := child.Text().FontSize
@ -72,6 +73,12 @@ func withoutGridDiagrams(ctx context.Context, g *d2graph.Graph, layout d2graph.L
child.Style.FontSize = &d2graph.Scalar{}
}
child.Style.FontSize.Value = strconv.Itoa(fontSize)
// update label dimensions
ratio := float64(fontSize) / float64(originalFontSize)
child.LabelDimensions.Height = int(math.Ceil(float64(child.LabelDimensions.Height) * ratio))
child.LabelDimensions.Width = int(math.Ceil(float64(child.LabelDimensions.Width) * ratio))
if err := layout(ctx, tempGraph); err != nil {
return err
}