diff --git a/draftlogs/7927_fix.md b/draftlogs/7927_fix.md new file mode 100644 index 00000000000..6d8714b2a62 --- /dev/null +++ b/draftlogs/7927_fix.md @@ -0,0 +1 @@ +- Fix legend sizing for traces with MathJax names [[#7927](https://github.com/plotly/plotly.js/pull/7927)] diff --git a/src/components/legend/draw.js b/src/components/legend/draw.js index cf6439f0cf8..37671cd412a 100644 --- a/src/components/legend/draw.js +++ b/src/components/legend/draw.js @@ -772,7 +772,19 @@ function computeTextDimensions(g, gd, legendObj, aTitle) { var height, width; if(mathjaxNode) { - var mathjaxBB = Drawing.bBox(mathjaxNode); + var mathjaxBB; + var mjInnerSvg = mathjaxNode.querySelector && mathjaxNode.querySelector('svg'); + var mjViewBox = mjInnerSvg && mjInnerSvg.getAttribute('viewBox'); + if(mjViewBox) { + var vbParts = mjViewBox.split(/\s+/).map(Number); + var emPx = parseFloat(window.getComputedStyle(mathjaxNode).fontSize) || font.size; + mathjaxBB = { + width: (vbParts[2] / 1000) * emPx, + height: (vbParts[3] / 1000) * emPx + }; + } else { + mathjaxBB = Drawing.bBox(mathjaxNode); + } height = mathjaxBB.height; width = mathjaxBB.width;