From 1567de64e1dfd50bd7794ea506f0a329e59c3324 Mon Sep 17 00:00:00 2001 From: Gavin Nishizawa Date: Fri, 3 Feb 2023 13:13:10 -0800 Subject: [PATCH] don't set obj.LabelDimensions with padding --- d2exporter/export.go | 1 + d2graph/d2graph.go | 4 ++-- d2renderers/d2svg/d2svg.go | 3 +-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/d2exporter/export.go b/d2exporter/export.go index 06628af70..5a57f0881 100644 --- a/d2exporter/export.go +++ b/d2exporter/export.go @@ -143,6 +143,7 @@ func toShape(obj *d2graph.Object, theme *d2themes.Theme) d2target.Shape { } shape.Label = text.Text shape.LabelWidth = text.Dimensions.Width + shape.LabelHeight = text.Dimensions.Height if obj.LabelPosition != nil { shape.LabelPosition = *obj.LabelPosition diff --git a/d2graph/d2graph.go b/d2graph/d2graph.go index 1c67aebbb..c92f80a54 100644 --- a/d2graph/d2graph.go +++ b/d2graph/d2graph.go @@ -1208,11 +1208,11 @@ func (g *Graph) SetDimensions(mtexts []*d2target.MText, ruler *textmeasure.Ruler } } + obj.LabelDimensions = *labelDims if dslShape != d2target.ShapeText && obj.Attributes.Label.Value != "" { labelDims.Width += INNER_LABEL_PADDING labelDims.Height += INNER_LABEL_PADDING } - obj.LabelDimensions = *labelDims defaultDims, err := obj.GetDefaultSize(mtexts, ruler, fontFamily, *labelDims) if err != nil { @@ -1226,7 +1226,7 @@ func (g *Graph) SetDimensions(mtexts []*d2target.MText, ruler *textmeasure.Ruler paddingX, paddingY := s.GetDefaultPadding() // give shapes with icons extra padding to fit their label if obj.Attributes.Icon != nil { - labelHeight := float64(obj.LabelDimensions.Height) + labelHeight := float64(labelDims.Height) // Evenly pad enough to fit label above icon paddingX += labelHeight paddingY += labelHeight diff --git a/d2renderers/d2svg/d2svg.go b/d2renderers/d2svg/d2svg.go index 5a2eeb348..546ec2740 100644 --- a/d2renderers/d2svg/d2svg.go +++ b/d2renderers/d2svg/d2svg.go @@ -897,8 +897,7 @@ func drawShape(writer io.Writer, targetShape d2target.Shape, sketchRunner *d2ske } labelTL := labelPosition.GetPointOnBox(box, label.PADDING, float64(targetShape.LabelWidth), - // TODO consider further - float64(targetShape.LabelHeight-d2graph.INNER_LABEL_PADDING), + float64(targetShape.LabelHeight), ) fontClass := "text"