@@ -214,8 +214,9 @@ function handleCartesian(gd, ev) {
214214
215215 if ( ! ax . fixedrange ) {
216216 axName = ax . _name ;
217- if ( val === 'auto' ) aobj [ axName + '.autorange' ] = true ;
218- else if ( val === 'reset' ) {
217+ if ( val === 'auto' ) {
218+ aobj [ axName + '.autorange' ] = true ;
219+ } else if ( val === 'reset' ) {
219220 if ( ax . _rangeInitial === undefined ) {
220221 aobj [ axName + '.autorange' ] = true ;
221222 } else {
@@ -581,26 +582,22 @@ modeBarButtons.toggleSpikelines = {
581582 val : 'on' ,
582583 click : function ( gd ) {
583584 var fullLayout = gd . _fullLayout ;
585+ var allSpikesEnabled = fullLayout . _cartesianSpikesEnabled ;
584586
585- fullLayout . _cartesianSpikesEnabled = fullLayout . _cartesianSpikesEnabled === 'on' ? 'off' : 'on' ;
586-
587- var aobj = setSpikelineVisibility ( gd ) ;
588-
589- Registry . call ( '_guiRelayout' , gd , aobj ) ;
587+ fullLayout . _cartesianSpikesEnabled = allSpikesEnabled === 'on' ? 'off' : 'on' ;
588+ Registry . call ( '_guiRelayout' , gd , setSpikelineVisibility ( gd ) ) ;
590589 }
591590} ;
592591
593592function setSpikelineVisibility ( gd ) {
594593 var fullLayout = gd . _fullLayout ;
594+ var areSpikesOn = fullLayout . _cartesianSpikesEnabled === 'on' ;
595595 var axList = axisIds . list ( gd , null , true ) ;
596596 var aobj = { } ;
597597
598- var ax , axName ;
599-
600598 for ( var i = 0 ; i < axList . length ; i ++ ) {
601- ax = axList [ i ] ;
602- axName = ax . _name ;
603- aobj [ axName + '.showspikes' ] = fullLayout . _cartesianSpikesEnabled === 'on' ? true : ax . _showSpikeInitial ;
599+ var ax = axList [ i ] ;
600+ aobj [ ax . _name + '.showspikes' ] = areSpikesOn ? true : ax . _showSpikeInitial ;
604601 }
605602
606603 return aobj ;
0 commit comments