From d7865ac4aa3b27b4980513c558dc90bbbcb81059 Mon Sep 17 00:00:00 2001 From: J Guthrie Date: Mon, 8 Apr 2019 12:42:16 +0100 Subject: [PATCH] don't unclose way if it is part of a larger disconnect operation --- modules/actions/disconnect.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/modules/actions/disconnect.js b/modules/actions/disconnect.js index 62a2162b0..b7ed93814 100644 --- a/modules/actions/disconnect.js +++ b/modules/actions/disconnect.js @@ -22,7 +22,7 @@ export function actionDisconnect(nodeId, newNodeId) { var action = function(graph) { var node = graph.entity(nodeId); var connections = action.connections(graph); - + connections.forEach(function(connection) { var way = graph.entity(connection.wayID); var newNode = osmNode({id: newNodeId, loc: node.loc, tags: node.tags}); @@ -59,6 +59,9 @@ export function actionDisconnect(nodeId, newNodeId) { } else { way.nodes.forEach(function(waynode, index) { if (waynode === nodeId) { + if (way.isClosed() && parentWays.length > 1 && wayIds && wayIds.includes(way.id) && index === way.nodes.length-1) { + return; + } candidates.push({ wayID: way.id, index: index }); } }); @@ -71,7 +74,7 @@ export function actionDisconnect(nodeId, newNodeId) { action.disabled = function(graph) { var connections = action.connections(graph); - if (connections.length === 0 || (wayIds && wayIds.length !== connections.length)) + if (connections.length === 0) return 'not_connected'; var parentWays = graph.parentWays(graph.entity(nodeId));