diff --git a/modules/renderer/map.js b/modules/renderer/map.js index 68ace0a1a..084179aa5 100644 --- a/modules/renderer/map.js +++ b/modules/renderer/map.js @@ -60,7 +60,7 @@ export function rendererMap(context) { var _isTransformed = false; var _minzoom = 0; var _getMouseCoords; - var _mouseEvent; + var _lastPointerEvent; var _lastWithinEditableZoom; // whether a pointerdown event started the zoom @@ -180,17 +180,19 @@ export function rendererMap(context) { }) .on('gesturechange.surface', gestureChange) .on(_pointerPrefix + 'down.zoom', function() { + _lastPointerEvent = d3_event; if (d3_event.button === 2) { d3_event.stopPropagation(); } }, true) .on(_pointerPrefix + 'up.zoom', function() { + _lastPointerEvent = d3_event; if (resetTransform()) { immediateRedraw(); } }) .on(_pointerPrefix + 'move.map', function() { - _mouseEvent = d3_event; + _lastPointerEvent = d3_event; }) .on(_pointerPrefix + 'over.vertices', function() { if (map.editableDataEnabled() && !_isTransformed) { @@ -599,7 +601,7 @@ export function rendererMap(context) { } if (source) { - _mouseEvent = event; + _lastPointerEvent = event; } _isTransformed = true; _transformLast = eventTransform; @@ -683,7 +685,7 @@ export function rendererMap(context) { map.mouse = function() { - var event = _mouseEvent || d3_event; + var event = _lastPointerEvent || d3_event; if (event) { var s; while ((s = event.sourceEvent)) { event = s; } diff --git a/modules/ui/edit_menu.js b/modules/ui/edit_menu.js index 3f6cd7a86..f4cfdb739 100644 --- a/modules/ui/edit_menu.js +++ b/modules/ui/edit_menu.js @@ -91,7 +91,8 @@ export function uiEditMenu(context) { } function pointerdown() { - d3_event.stopPropagation(); // https://github.com/openstreetmap/iD/issues/1869 + // don't let button presses also act as map input - #1869 + d3_event.stopPropagation(); } };