@@ -181,7 +181,7 @@ function handleCartesian(gd, ev) {
181
181
var fullLayout = gd . _fullLayout ;
182
182
var aobj = { } ;
183
183
var axList = axisIds . list ( gd , null , true ) ;
184
- var allEnabled = 'on' ;
184
+ var allSpikesEnabled = 'on' ;
185
185
186
186
var ax , i ;
187
187
@@ -209,8 +209,8 @@ function handleCartesian(gd, ev) {
209
209
}
210
210
if ( ax . _showSpikeInitial !== undefined ) {
211
211
aobj [ axName + '.showspikes' ] = ax . _showSpikeInitial ;
212
- if ( allEnabled === 'on' && ! ax . _showSpikeInitial ) {
213
- allEnabled = 'off' ;
212
+ if ( allSpikesEnabled === 'on' && ! ax . _showSpikeInitial ) {
213
+ allSpikesEnabled = 'off' ;
214
214
}
215
215
}
216
216
}
@@ -230,24 +230,21 @@ function handleCartesian(gd, ev) {
230
230
}
231
231
}
232
232
}
233
- fullLayout . _cartesianSpikesEnabled = allEnabled ;
233
+ fullLayout . _cartesianSpikesEnabled = allSpikesEnabled ;
234
234
}
235
235
else {
236
236
// if ALL traces have orientation 'h', 'hovermode': 'x' otherwise: 'y'
237
237
if ( astr === 'hovermode' && ( val === 'x' || val === 'y' ) ) {
238
238
val = fullLayout . _isHoriz ? 'y' : 'x' ;
239
239
button . setAttribute ( 'data-val' , val ) ;
240
- if ( val !== 'closest' ) {
241
- fullLayout . _cartesianSpikesEnabled = 'off' ;
242
- }
243
240
} else if ( astr === 'hovermode' && val === 'closest' ) {
244
241
for ( i = 0 ; i < axList . length ; i ++ ) {
245
242
ax = axList [ i ] ;
246
- if ( allEnabled === 'on' && ! ax . showspikes ) {
247
- allEnabled = 'off' ;
243
+ if ( allSpikesEnabled === 'on' && ! ax . showspikes ) {
244
+ allSpikesEnabled = 'off' ;
248
245
}
249
246
}
250
- fullLayout . _cartesianSpikesEnabled = allEnabled ;
247
+ fullLayout . _cartesianSpikesEnabled = allSpikesEnabled ;
251
248
}
252
249
253
250
aobj [ astr ] = val ;
@@ -551,12 +548,10 @@ modeBarButtons.toggleSpikelines = {
551
548
click : function ( gd ) {
552
549
var fullLayout = gd . _fullLayout ;
553
550
554
- fullLayout . _cartesianSpikesEnabled = fullLayout . hovermode === 'closest' ?
555
- ( fullLayout . _cartesianSpikesEnabled === 'on' ? 'off' : 'on' ) : 'on' ;
551
+ fullLayout . _cartesianSpikesEnabled = fullLayout . _cartesianSpikesEnabled === 'on' ? 'off' : 'on' ;
556
552
557
553
var aobj = setSpikelineVisibility ( gd ) ;
558
554
559
- aobj . hovermode = 'closest' ;
560
555
Plotly . relayout ( gd , aobj ) ;
561
556
}
562
557
} ;
@@ -571,7 +566,7 @@ function setSpikelineVisibility(gd) {
571
566
for ( var i = 0 ; i < axList . length ; i ++ ) {
572
567
ax = axList [ i ] ;
573
568
axName = ax . _name ;
574
- aobj [ axName + '.showspikes' ] = fullLayout . _cartesianSpikesEnabled === 'on' ? true : false ;
569
+ aobj [ axName + '.showspikes' ] = fullLayout . _cartesianSpikesEnabled === 'on' ? true : ax . _showSpikeInitial ;
575
570
}
576
571
577
572
return aobj ;
0 commit comments