From: Dan Vanderkam Date: Mon, 11 Jul 2016 22:20:41 +0000 (-0400) Subject: Merge pull request #761 from justinsg/master X-Git-Tag: v2.0.0~24 X-Git-Url: https://adrianiainlam.tk/git/?a=commitdiff_plain;h=6eef8c1b9ec7b247ee2b508032bd3ec957d0fb68;hp=287c4d68da47248a301bc9087d3b3c7f4ea36a44;p=dygraphs.git Merge pull request #761 from justinsg/master Check for new options before updating synchronised graphs (Fixes #760) --- diff --git a/src/extras/synchronizer.js b/src/extras/synchronizer.js old mode 100644 new mode 100755 index bf5b6f3..6f369f3 --- a/src/extras/synchronizer.js +++ b/src/extras/synchronizer.js @@ -153,6 +153,16 @@ var synchronize = function(/* dygraphs..., opts */) { }; }; +function arraysAreEqual(a, b) { + if (!Array.isArray(a) || !Array.isArray(b)) return false; + var i = a.length; + if (i !== b.length) return false; + while (i--) { + if (a[i] !== b[i]) return false; + } + return true; +} + function attachZoomHandlers(gs, syncOpts, prevCallbacks) { var block = false; for (var i = 0; i < gs.length; i++) { @@ -173,6 +183,13 @@ function attachZoomHandlers(gs, syncOpts, prevCallbacks) { } continue; } + + // Only redraw if there are new options + if (arraysAreEqual(opts.dateWindow, gs[j].getOption('dateWindow')) && + arraysAreEqual(opts.valueRange, gs[j].getOption('valueRange'))) { + continue; + } + gs[j].updateOptions(opts); } block = false;