Skip to content

Commit 767b454

Browse files
authored
Merge pull request #1037 from n-gist/synchonizer-y-zoom-ignorance-fix
Synchronizer plugin vertical zoom ignorance fix
2 parents ecdc964 + 79715fd commit 767b454

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

src/extras/synchronizer.js

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -192,11 +192,10 @@ function attachZoomHandlers(gs, syncOpts, prevCallbacks) {
192192
}
193193

194194
block = true;
195+
195196
var opts = {
196197
dateWindow: me.xAxisRange()
197198
};
198-
if (!me.isZoomed('x'))
199-
opts.dateWindow = null;
200199
if (syncOpts.range)
201200
opts.valueRange = me.yAxisRange();
202201

@@ -208,14 +207,17 @@ function attachZoomHandlers(gs, syncOpts, prevCallbacks) {
208207
continue;
209208
}
210209

211-
// Only redraw if there are new options
212-
if (arraysAreEqual(opts.dateWindow, gs[j].getOption('dateWindow')) &&
213-
(!syncOpts.range ||
214-
arraysAreEqual(opts.valueRange, gs[j].getOption('valueRange')))) {
215-
continue;
216-
}
210+
// If X-zoom differs, update
211+
var update = !arraysAreEqual(opts.dateWindow, gs[j].getOption('dateWindow'));
212+
// If Y-zoom differs and syncing, update
213+
if (!update && syncOpts.range && !arraysAreEqual(opts.valueRange, gs[j].getOption('valueRange')))
214+
update = true;
215+
// If about to update, but not syncing Y-zoom, pass current value
216+
if (update && !syncOpts.range)
217+
opts.valueRange = gs[j].yAxisRange();
217218

218-
gs[j].updateOptions(opts);
219+
if (update)
220+
gs[j].updateOptions(opts);
219221
}
220222
block = false;
221223
}

0 commit comments

Comments
 (0)