@@ -1841,6 +1841,8 @@ plots.doAutoMargin = function(gd) {
18411841 var mr = margin . r ;
18421842 var mt = margin . t ;
18431843 var mb = margin . b ;
1844+ var width = fullLayout . width ;
1845+ var height = fullLayout . height ;
18441846 var pushMargin = fullLayout . _pushmargin ;
18451847 var pushMarginIds = fullLayout . _pushmarginIds ;
18461848
@@ -1876,13 +1878,11 @@ plots.doAutoMargin = function(gd) {
18761878 var pr = pushMargin [ k2 ] . r . size ;
18771879
18781880 if ( fr > fl ) {
1879- var newl = ( pl * fr +
1880- ( pr - fullLayout . width ) * fl ) / ( fr - fl ) ;
1881- var newr = ( pr * ( 1 - fl ) +
1882- ( pl - fullLayout . width ) * ( 1 - fr ) ) / ( fr - fl ) ;
1883- if ( newl >= 0 && newr >= 0 && newl + newr > ml + mr ) {
1884- ml = newl ;
1885- mr = newr ;
1881+ var newL = ( pl * fr + ( pr - width ) * fl ) / ( fr - fl ) ;
1882+ var newR = ( pr * ( 1 - fl ) + ( pl - width ) * ( 1 - fr ) ) / ( fr - fl ) ;
1883+ if ( newL >= 0 && newR >= 0 && width - ( newL + newR ) > 0 && newL + newR > ml + mr ) {
1884+ ml = newL ;
1885+ mr = newR ;
18861886 }
18871887 }
18881888 }
@@ -1892,13 +1892,11 @@ plots.doAutoMargin = function(gd) {
18921892 var pt = pushMargin [ k2 ] . t . size ;
18931893
18941894 if ( ft > fb ) {
1895- var newb = ( pb * ft +
1896- ( pt - fullLayout . height ) * fb ) / ( ft - fb ) ;
1897- var newt = ( pt * ( 1 - fb ) +
1898- ( pb - fullLayout . height ) * ( 1 - ft ) ) / ( ft - fb ) ;
1899- if ( newb >= 0 && newt >= 0 && newb + newt > mb + mt ) {
1900- mb = newb ;
1901- mt = newt ;
1895+ var newB = ( pb * ft + ( pt - height ) * fb ) / ( ft - fb ) ;
1896+ var newT = ( pt * ( 1 - fb ) + ( pb - height ) * ( 1 - ft ) ) / ( ft - fb ) ;
1897+ if ( newB >= 0 && newT >= 0 && height - ( newT + newB ) > 0 && newB + newT > mb + mt ) {
1898+ mb = newB ;
1899+ mt = newT ;
19021900 }
19031901 }
19041902 }
@@ -1911,8 +1909,8 @@ plots.doAutoMargin = function(gd) {
19111909 gs . t = Math . round ( mt ) ;
19121910 gs . b = Math . round ( mb ) ;
19131911 gs . p = Math . round ( margin . pad ) ;
1914- gs . w = Math . round ( fullLayout . width ) - gs . l - gs . r ;
1915- gs . h = Math . round ( fullLayout . height ) - gs . t - gs . b ;
1912+ gs . w = Math . round ( width ) - gs . l - gs . r ;
1913+ gs . h = Math . round ( height ) - gs . t - gs . b ;
19161914
19171915 // if things changed and we're not already redrawing, trigger a redraw
19181916 if ( ! fullLayout . _replotting &&
0 commit comments