diff --git a/CHANGELOG.md b/CHANGELOG.md index 3777c1c59..21a04f688 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,6 +35,14 @@ _Breaking developer changes, which may affect downstream projects or sites that [@xxxx]: https://github.com/xxxx --> +# Unreleased + +#### :bug: Bugfixes +* Fix context "edit" menu on touchscreens: render labels properly and always open the touch-specific edit menu ([#9425]) + +[#9425]: https://github.com/openstreetmap/iD/issues/9425 + + # 2.24.0 ##### 2023-Jan-19 diff --git a/modules/behavior/select.js b/modules/behavior/select.js index ee5e02e4d..025c8bea7 100644 --- a/modules/behavior/select.js +++ b/modules/behavior/select.js @@ -180,7 +180,14 @@ export function behaviorSelect(context) { } } else { _lastMouseEvent = d3_event; - _lastInteractionType = 'rightclick'; + if (d3_event.pointerType === 'touch' || d3_event.pointerType === 'pen' || + d3_event.mozInputSource && ( // firefox doesn't give a pointerType on contextmenu events + d3_event.mozInputSource === MouseEvent.MOZ_SOURCE_TOUCH || + d3_event.mozInputSource === MouseEvent.MOZ_SOURCE_PEN)) { + _lastInteractionType = 'touch'; + } else { + _lastInteractionType = 'rightclick'; + } } _showMenu = true; diff --git a/modules/ui/edit_menu.js b/modules/ui/edit_menu.js index 173e1144b..9b9bbbdfc 100644 --- a/modules/ui/edit_menu.js +++ b/modules/ui/edit_menu.js @@ -120,8 +120,8 @@ export function uiEditMenu(context) { if (showLabels) { buttonsEnter.append('span') .attr('class', 'label') - .html(function(d) { - return d.title; + .each(function(d) { + d3_select(this).call(d.title); }); }