diff --git a/CHANGELOG.md b/CHANGELOG.md index 64d7f7c89..5bdc1f896 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -39,6 +39,7 @@ _Breaking developer changes, which may affect downstream projects or sites that #### :sparkles: Usability & Accessibility * Also show search result for coordinates in `lon/lat` order in search results ([#10720], thanks [@Deeptanshu-sankhwar]) +* Allow broken (unclosed) areas to be continued ([#9635], thanks [@k-yle]) #### :scissors: Operations * Fix splitting of closed ways (or areas) when two or more split-points are selected #### :camera: Street-Level @@ -59,6 +60,7 @@ _Breaking developer changes, which may affect downstream projects or sites that #### :hammer: Development [#7381]: https://github.com/openstreetmap/iD/issues/7381 +[#9635]: https://github.com/openstreetmap/iD/pull/9635 [#10003]: https://github.com/openstreetmap/iD/pull/10003 [#10720]: https://github.com/openstreetmap/iD/issues/10720 [#10747]: https://github.com/openstreetmap/iD/issues/10747 diff --git a/modules/operations/continue.js b/modules/operations/continue.js index e6d79fb39..676c47d07 100644 --- a/modules/operations/continue.js +++ b/modules/operations/continue.js @@ -16,7 +16,8 @@ export function operationContinue(context, selectedIDs) { function candidateWays() { return _vertex ? context.graph().parentWays(_vertex).filter(function(parent) { - return parent.geometry(context.graph()) === 'line' && + const geom = parent.geometry(context.graph()); + return (geom === 'line' || geom === 'area') && !parent.isClosed() && parent.affix(_vertex.id) && (_geometries.line.length === 0 || _geometries.line[0] === parent);