@@ -1293,10 +1293,7 @@ function arrayTicks(ax, majorOnly) {
1293
1293
for ( var i = 0 ; i < vals . length ; i ++ ) {
1294
1294
var vali = tickVal2l ( vals [ i ] ) ;
1295
1295
if ( vali > tickMin && vali < tickMax ) {
1296
- var obj = text [ i ] === undefined ?
1297
- axes . tickText ( ax , vali ) :
1298
- tickTextObj ( ax , vali , String ( text [ i ] ) ) ;
1299
-
1296
+ var obj = axes . tickText ( ax , vali , false , String ( text [ i ] ) ) ;
1300
1297
if ( isMinor ) {
1301
1298
obj . minor = true ;
1302
1299
obj . text = '' ;
@@ -1633,6 +1630,14 @@ axes.tickText = function(ax, x, hover, noSuffixPrefix) {
1633
1630
}
1634
1631
if ( i < ax . ticktext . length ) {
1635
1632
out . text = String ( ax . ticktext [ i ] ) ;
1633
+ var inbounds = function ( v ) {
1634
+ var p = ax . l2p ( v ) ;
1635
+ return p >= 0 && p <= ax . _length ? v : null ;
1636
+ } ;
1637
+ out . xbnd = [
1638
+ inbounds ( out . x - 0.5 ) ,
1639
+ inbounds ( out . x + ax . dtick - 0.5 )
1640
+ ] ;
1636
1641
return out ;
1637
1642
}
1638
1643
}
@@ -2807,7 +2812,7 @@ function getBoundaryVals(ax, vals) {
2807
2812
// boundaryVals are never used for labels;
2808
2813
// no need to worry about the other tickTextObj keys
2809
2814
var _push = function ( d , bndIndex ) {
2810
- var xb = d . xbnd ? d . xbnd [ bndIndex ] : d . x ;
2815
+ var xb = d . xbnd [ bndIndex ] ;
2811
2816
if ( xb !== null ) {
2812
2817
out . push ( Lib . extendFlat ( { } , d , { x : xb } ) ) ;
2813
2818
}
@@ -3755,7 +3760,7 @@ axes.drawLabels = function(gd, ax, opts) {
3755
3760
// TODO should secondary labels also fall into this fix-overlap regime?
3756
3761
3757
3762
for ( i = 0 ; i < lbbArray . length ; i ++ ) {
3758
- var xbnd = ( vals && vals [ i ] . xbnd ) ? vals [ i ] . xbnd : [ null , null ] ;
3763
+ var xbnd = vals [ i ] . xbnd ;
3759
3764
var lbb = lbbArray [ i ] ;
3760
3765
if (
3761
3766
( xbnd [ 0 ] !== null && ( lbb . left - ax . l2p ( xbnd [ 0 ] ) ) < gap ) ||
0 commit comments