diff --git a/src/components/modebar/buttons.js b/src/components/modebar/buttons.js index e3e2a6c03c7..b545faff14b 100644 --- a/src/components/modebar/buttons.js +++ b/src/components/modebar/buttons.js @@ -218,10 +218,11 @@ function handleCartesian(gd, ev) { r1 = (1 - mag) / 2, axList = Plotly.Axes.list(gd, null, true); - var ax, axName, initialRange; + var ax, axName; for(var i = 0; i < axList.length; i++) { ax = axList[i]; + if(!ax.fixedrange) { axName = ax._name; if(val === 'auto') aobj[axName + '.autorange'] = true; @@ -229,14 +230,16 @@ function handleCartesian(gd, ev) { if(ax._rangeInitial === undefined) { aobj[axName + '.autorange'] = true; } - else aobj[axName + '.range'] = ax._rangeInitial.slice(); + else { + var rangeInitial = ax._rangeInitial.slice(); + aobj[axName + '.range[0]'] = rangeInitial[0]; + aobj[axName + '.range[1]'] = rangeInitial[1]; + } } else { - initialRange = ax.range; - aobj[axName + '.range'] = [ - r0 * initialRange[0] + r1 * initialRange[1], - r0 * initialRange[1] + r1 * initialRange[0] - ]; + var rangeNow = ax.range; + aobj[axName + '.range[0]'] = r0 * rangeNow[0] + r1 * rangeNow[1]; + aobj[axName + '.range[1]'] = r0 * rangeNow[1] + r1 * rangeNow[0]; } } } diff --git a/src/plots/cartesian/dragbox.js b/src/plots/cartesian/dragbox.js index a086e58aaba..76e5976aabd 100644 --- a/src/plots/cartesian/dragbox.js +++ b/src/plots/cartesian/dragbox.js @@ -522,7 +522,7 @@ module.exports = function dragBox(gd, plotinfo, x, y, w, h, ns, ew) { axList = (xActive ? xa : []).concat(yActive ? ya : []), attrs = {}; - var ax, i; + var ax, i, rangeInitial; if(doubleClickConfig === 'autosize') { for(i = 0; i < axList.length; i++) { @@ -538,7 +538,9 @@ module.exports = function dragBox(gd, plotinfo, x, y, w, h, ns, ew) { attrs[ax._name + '.autorange'] = true; } else { - attrs[ax._name + '.range'] = ax._rangeInitial.slice(); + rangeInitial = ax._rangeInitial.slice(); + attrs[ax._name + '.range[0]'] = rangeInitial[0]; + attrs[ax._name + '.range[1]'] = rangeInitial[1]; } } } @@ -553,7 +555,11 @@ module.exports = function dragBox(gd, plotinfo, x, y, w, h, ns, ew) { ) { attrs[ax._name + '.autorange'] = true; } - else attrs[ax._name + '.range'] = ax._rangeInitial.slice(); + else { + rangeInitial = ax._rangeInitial.slice(); + attrs[ax._name + '.range[0]'] = rangeInitial[0]; + attrs[ax._name + '.range[1]'] = rangeInitial[1]; + } } }