@@ -181,7 +181,7 @@ function handleCartesian(gd, ev) {
181181 var fullLayout = gd . _fullLayout ;
182182 var aobj = { } ;
183183 var axList = axisIds . list ( gd , null , true ) ;
184- var allEnabled = 'on' ;
184+ var allSpikesEnabled = 'on' ;
185185
186186 var ax , i ;
187187
@@ -209,8 +209,8 @@ function handleCartesian(gd, ev) {
209209 }
210210 if ( ax . _showSpikeInitial !== undefined ) {
211211 aobj [ axName + '.showspikes' ] = ax . _showSpikeInitial ;
212- if ( allEnabled === 'on' && ! ax . _showSpikeInitial ) {
213- allEnabled = 'off' ;
212+ if ( allSpikesEnabled === 'on' && ! ax . _showSpikeInitial ) {
213+ allSpikesEnabled = 'off' ;
214214 }
215215 }
216216 }
@@ -230,24 +230,21 @@ function handleCartesian(gd, ev) {
230230 }
231231 }
232232 }
233- fullLayout . _cartesianSpikesEnabled = allEnabled ;
233+ fullLayout . _cartesianSpikesEnabled = allSpikesEnabled ;
234234 }
235235 else {
236236 // if ALL traces have orientation 'h', 'hovermode': 'x' otherwise: 'y'
237237 if ( astr === 'hovermode' && ( val === 'x' || val === 'y' ) ) {
238238 val = fullLayout . _isHoriz ? 'y' : 'x' ;
239239 button . setAttribute ( 'data-val' , val ) ;
240- if ( val !== 'closest' ) {
241- fullLayout . _cartesianSpikesEnabled = 'off' ;
242- }
243240 } else if ( astr === 'hovermode' && val === 'closest' ) {
244241 for ( i = 0 ; i < axList . length ; i ++ ) {
245242 ax = axList [ i ] ;
246- if ( allEnabled === 'on' && ! ax . showspikes ) {
247- allEnabled = 'off' ;
243+ if ( allSpikesEnabled === 'on' && ! ax . showspikes ) {
244+ allSpikesEnabled = 'off' ;
248245 }
249246 }
250- fullLayout . _cartesianSpikesEnabled = allEnabled ;
247+ fullLayout . _cartesianSpikesEnabled = allSpikesEnabled ;
251248 }
252249
253250 aobj [ astr ] = val ;
@@ -551,12 +548,10 @@ modeBarButtons.toggleSpikelines = {
551548 click : function ( gd ) {
552549 var fullLayout = gd . _fullLayout ;
553550
554- fullLayout . _cartesianSpikesEnabled = fullLayout . hovermode === 'closest' ?
555- ( fullLayout . _cartesianSpikesEnabled === 'on' ? 'off' : 'on' ) : 'on' ;
551+ fullLayout . _cartesianSpikesEnabled = fullLayout . _cartesianSpikesEnabled === 'on' ? 'off' : 'on' ;
556552
557553 var aobj = setSpikelineVisibility ( gd ) ;
558554
559- aobj . hovermode = 'closest' ;
560555 Plotly . relayout ( gd , aobj ) ;
561556 }
562557} ;
@@ -571,7 +566,7 @@ function setSpikelineVisibility(gd) {
571566 for ( var i = 0 ; i < axList . length ; i ++ ) {
572567 ax = axList [ i ] ;
573568 axName = ax . _name ;
574- aobj [ axName + '.showspikes' ] = fullLayout . _cartesianSpikesEnabled === 'on' ? true : false ;
569+ aobj [ axName + '.showspikes' ] = fullLayout . _cartesianSpikesEnabled === 'on' ? true : ax . _showSpikeInitial ;
575570 }
576571
577572 return aobj ;
0 commit comments