From b4cd1d67d8238a270d707b339725773c91b97ad9 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Sat, 7 Mar 2015 15:22:37 -0500 Subject: [PATCH] Adjust double click handler for new D3 zoom behavior D3 v3.5+ has changed the zoom behavior to emit tweened zoom events rather than a single zoom event with a dblclick source event. --- js/id/renderer/map.js | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/js/id/renderer/map.js b/js/id/renderer/map.js index 3ff258a10..88274331a 100644 --- a/js/id/renderer/map.js +++ b/js/id/renderer/map.js @@ -30,7 +30,9 @@ iD.Map = function(context) { context.features() .on('redraw.map', redraw); - selection.call(zoom); + selection + .on('dblclick.map', dblClick) + .call(zoom); supersurface = selection.append('div') .attr('id', 'supersurface'); @@ -143,15 +145,14 @@ iD.Map = function(context) { dispatch.drawn({full: true}); } - function zoomPan() { - if (d3.event && d3.event.sourceEvent.type === 'dblclick') { - if (!dblclickEnabled) { - zoom.scale(projection.scale() * 2 * Math.PI) - .translate(projection.translate()); - return d3.event.sourceEvent.preventDefault(); - } + function dblClick() { + if (!dblclickEnabled) { + d3.event.preventDefault(); + d3.event.stopImmediatePropagation(); } + } + function zoomPan() { if (Math.log(d3.event.scale / Math.LN2 - 8) < minzoom + 1) { iD.ui.flash(context.container()) .select('.content')