Skip to content

Commit 17d07c0

Browse files
committed
legend: ensure event listeners are registered
1 parent 1021272 commit 17d07c0

File tree

1 file changed

+26
-26
lines changed

1 file changed

+26
-26
lines changed

src/components/legend/draw.js

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -253,36 +253,36 @@ module.exports = function draw(gd) {
253253

254254
scrollBox.call(Drawing.setClipUrl, clipId);
255255

256-
if(gd.firstRender) {
256+
if(gd.firstRender) scrollHandler(scrollBarY, scrollBoxY);
257+
258+
legend.on('wheel', null); // to be safe, remove previous listeners
259+
legend.on('wheel', function() {
260+
scrollBoxY = Lib.constrain(
261+
scrollBox.attr('data-scroll') -
262+
d3.event.deltaY / scrollBarYMax * scrollBoxYMax,
263+
-scrollBoxYMax, 0);
264+
scrollBarY = constants.scrollBarMargin -
265+
scrollBoxY / scrollBoxYMax * scrollBarYMax;
257266
scrollHandler(scrollBarY, scrollBoxY);
267+
d3.event.preventDefault();
268+
});
258269

259-
legend.on('wheel', null);
260-
legend.on('wheel', function() {
261-
scrollBoxY = Lib.constrain(
262-
scrollBox.attr('data-scroll') -
263-
d3.event.deltaY / scrollBarYMax * scrollBoxYMax,
264-
-scrollBoxYMax, 0);
265-
scrollBarY = constants.scrollBarMargin -
266-
scrollBoxY / scrollBoxYMax * scrollBarYMax;
267-
scrollHandler(scrollBarY, scrollBoxY);
268-
d3.event.preventDefault();
269-
});
270+
// to be safe, remove previous listeners
271+
scrollBar.on('.drag', null);
272+
scrollBox.on('.drag', null);
270273

271-
scrollBar.on('.drag', null);
272-
scrollBox.on('.drag', null);
273-
var drag = d3.behavior.drag().on('drag', function() {
274-
scrollBarY = Lib.constrain(
275-
d3.event.y - constants.scrollBarHeight / 2,
276-
constants.scrollBarMargin,
277-
constants.scrollBarMargin + scrollBarYMax);
278-
scrollBoxY = - (scrollBarY - constants.scrollBarMargin) /
279-
scrollBarYMax * scrollBoxYMax;
280-
scrollHandler(scrollBarY, scrollBoxY);
281-
});
274+
var drag = d3.behavior.drag().on('drag', function() {
275+
scrollBarY = Lib.constrain(
276+
d3.event.y - constants.scrollBarHeight / 2,
277+
constants.scrollBarMargin,
278+
constants.scrollBarMargin + scrollBarYMax);
279+
scrollBoxY = - (scrollBarY - constants.scrollBarMargin) /
280+
scrollBarYMax * scrollBoxYMax;
281+
scrollHandler(scrollBarY, scrollBoxY);
282+
});
282283

283-
scrollBar.call(drag);
284-
scrollBox.call(drag);
285-
}
284+
scrollBar.call(drag);
285+
scrollBox.call(drag);
286286
}
287287

288288

0 commit comments

Comments
 (0)