Fix node drag regression introduced in 919234d

(closes #3829)
This commit is contained in:
Bryan Housel
2017-02-07 11:40:11 -05:00
parent fe2e0bfdee
commit 86118ece4e
+13 -7
View File
@@ -99,14 +99,20 @@ export function modeDragNode(context) {
function start(entity) {
wasMidpoint = entity.type === 'midpoint';
// vertices classed "sibling" include: (see svg/vertices.js)
// - children of selected ways or multipolygons
// - vertices sharing a way with selected vertices
var selection = d3.selectAll('g.vertex-persistent.' + entity.id),
isSelected = !selection.empty() &&
(selection.classed('selected') || selection.classed('sibling'));
// Things allowed to be dragged include:
// - midpoints
// - nodes that are selected
// - vertices that are selected
// - vertices classed 'sibling' which includes (see svg/vertices.js)
// - children of selected ways or multipolygons
// - vertices sharing a way with selected vertices
var selector = 'g.node.point.selected.' + entity.id +
', g.vertex-persistent.selected.' + entity.id +
', g.vertex-persistent.sibling.' + entity.id;
isCancelled = d3.event.sourceEvent.shiftKey || !(wasMidpoint || isSelected) ||
var isDraggable = wasMidpoint || !d3.select(selector).empty();
isCancelled = d3.event.sourceEvent.shiftKey || !isDraggable ||
context.features().hasHiddenConnections(entity, context.graph());
if (isCancelled) {