@@ -14,7 +14,8 @@ var interactConstants = require('../../constants/interactions');
1414
1515var OPPOSITE_SIDE = require ( '../../constants/alignment' ) . OPPOSITE_SIDE ;
1616var numStripRE = / [ X Y ] [ 0 - 9 ] * / ;
17- var MATHJAX_PADDING_BOTTOM = 10 ;
17+ var MATHJAX_PADDING_MULTIPLIER = 0.83 ;
18+ var EXTRA_SPACING_BETWEEN_TITLE_AND_SUBTITLE = 0 ;
1819
1920/**
2021 * Titles - (re)draw titles on the axes and plot:
@@ -79,12 +80,12 @@ function draw(gd, titleClass, options) {
7980 var subtitleProp = options . subtitlePropName ;
8081 var subtitleEnabled = ! ! subtitleProp ;
8182 var subtitlePlaceholder = options . subtitlePlaceholder ;
82- var subtitle = ( cont . title || { } ) . subtitle ;
83- var subtitleTxt = ( subtitle && subtitle . text ? subtitle . text : '' ) . trim ( ) ;
83+ var subtitle = ( cont . title || { } ) . subtitle || { text : '' , font : { } } ;
84+ var subtitleTxt = subtitle . text . trim ( ) ;
8485 var subtitleIsPlaceholder = false ;
8586 var subtitleOpacity = 1 ;
8687
87- var subtitleFont = subtitle && subtitle . font ? subtitle . font : { } ;
88+ var subtitleFont = subtitle . font ;
8889 var subFontFamily = subtitleFont . family ;
8990 var subFontSize = subtitleFont . size ;
9091 var subFontColor = subtitleFont . color ;
@@ -210,7 +211,7 @@ function draw(gd, titleClass, options) {
210211 if ( titleMathHeight ) {
211212 // Increase the y position of the subtitle by the height of the title,
212213 // plus a bit of padding
213- var newSubtitleY = Number ( subtitleElement . attr ( 'y' ) ) + titleMathHeight + MATHJAX_PADDING_BOTTOM ;
214+ var newSubtitleY = Number ( subtitleElement . attr ( 'y' ) ) + titleMathHeight + MATHJAX_PADDING_MULTIPLIER * subFontSize + EXTRA_SPACING_BETWEEN_TITLE_AND_SUBTITLE ;
214215 subtitleElement . attr ( 'y' , newSubtitleY ) ;
215216 }
216217 }
@@ -238,9 +239,9 @@ function draw(gd, titleClass, options) {
238239 var titleElHeight = titleEl . node ( ) . getBBox ( ) . height ;
239240 var titleElMathGroup = group . select ( '.' + titleClass + '-math-group' ) ;
240241 var titleElMathHeight = titleElMathGroup . node ( ) ? titleElMathGroup . node ( ) . getBBox ( ) . height : 0 ;
241- var subtitleShift = titleElMathHeight ? titleElMathHeight + MATHJAX_PADDING_BOTTOM : titleElHeight ;
242+ var subtitleShift = titleElMathHeight ? titleElMathHeight + ( MATHJAX_PADDING_MULTIPLIER * subFontSize ) : titleElHeight ;
242243 var subtitleAttributes = Lib . extendFlat ( { } , attributes , {
243- y : subtitleShift + attributes . y
244+ y : subtitleShift + EXTRA_SPACING_BETWEEN_TITLE_AND_SUBTITLE + attributes . y
244245 } ) ;
245246
246247 subtitleEl . attr ( 'transform' , transformVal ) ;
@@ -380,7 +381,7 @@ function draw(gd, titleClass, options) {
380381 // Only adjust if subtitle is enabled and title text was originally empty
381382 if ( subtitleEnabled && ! txt ) {
382383 var ht = Drawing . bBox ( el . node ( ) ) . height ;
383- var newSubtitleY = Number ( subtitleEl . attr ( 'y' ) ) + ht ;
384+ var newSubtitleY = Number ( subtitleEl . attr ( 'y' ) ) + ht + EXTRA_SPACING_BETWEEN_TITLE_AND_SUBTITLE ;
384385 subtitleEl . attr ( 'y' , newSubtitleY ) ;
385386 }
386387
0 commit comments