@@ -94,9 +94,12 @@ exports.convertToTspans = function(_context, gd, _callback) {
94
94
newSvg . node ( ) . firstChild ) ;
95
95
}
96
96
97
+ var w0 = _svgBBox . width ;
98
+ var h0 = _svgBBox . height ;
99
+
97
100
newSvg . attr ( {
98
101
'class' : svgClass ,
99
- height : _svgBBox . height ,
102
+ height : h0 ,
100
103
preserveAspectRatio : 'xMinYMin meet'
101
104
} )
102
105
. style ( { overflow : 'visible' , 'pointer-events' : 'none' } ) ;
@@ -105,9 +108,18 @@ exports.convertToTspans = function(_context, gd, _callback) {
105
108
var g = newSvg . select ( 'g' ) ;
106
109
g . attr ( { fill : fill , stroke : fill } ) ;
107
110
108
- var gBB = g . node ( ) . getBoundingClientRect ( ) ;
109
- var newSvgW = gBB . width ;
110
- var newSvgH = gBB . height ;
111
+ var bb = g . node ( ) . getBoundingClientRect ( ) ;
112
+ var w = bb . width ;
113
+ var h = bb . height ;
114
+
115
+ if ( w > w0 || h > h0 ) {
116
+ // this happen in firefox v82+ | see https://bugzilla.mozilla.org/show_bug.cgi?id=1709251 addressed
117
+ // temporary fix:
118
+ newSvg . style ( 'overflow' , 'hidden' ) ;
119
+ bb = newSvg . node ( ) . getBoundingClientRect ( ) ;
120
+ w = bb . width ;
121
+ h = bb . height ;
122
+ }
111
123
112
124
var x = + _context . attr ( 'x' ) ;
113
125
var y = + _context . attr ( 'y' ) ;
@@ -119,21 +131,21 @@ exports.convertToTspans = function(_context, gd, _callback) {
119
131
if ( svgClass [ 0 ] === 'y' ) {
120
132
mathjaxGroup . attr ( {
121
133
transform : 'rotate(' + [ - 90 , x , y ] +
122
- ')' + strTranslate ( - newSvgW / 2 , dy - newSvgH / 2 )
134
+ ')' + strTranslate ( - w / 2 , dy - h / 2 )
123
135
} ) ;
124
136
} else if ( svgClass [ 0 ] === 'l' ) {
125
- y = dy - newSvgH / 2 ;
137
+ y = dy - h / 2 ;
126
138
} else if ( svgClass [ 0 ] === 'a' && svgClass . indexOf ( 'atitle' ) !== 0 ) {
127
139
x = 0 ;
128
140
y = dy ;
129
141
} else {
130
142
var anchor = _context . attr ( 'text-anchor' ) ;
131
143
132
- x = x - newSvgW * (
144
+ x = x - w * (
133
145
anchor === 'middle' ? 0.5 :
134
146
anchor === 'end' ? 1 : 0
135
147
) ;
136
- y = y + dy - newSvgH / 2 ;
148
+ y = y + dy - h / 2 ;
137
149
}
138
150
139
151
newSvg . attr ( {
0 commit comments