|
@@ -1290,24 +1290,19 @@ export class LinearElementEditor {
|
|
|
app.state.editingLinearElement?.lastUncommittedPoint ===
|
|
|
element.points[element.points.length - 1];
|
|
|
|
|
|
+ const nextPoints = element.points.filter((_, idx) => {
|
|
|
+ return !pointIndices.includes(idx);
|
|
|
+ });
|
|
|
+
|
|
|
const isPolygon = isLineElement(element) && element.polygon;
|
|
|
|
|
|
- // break polygon if deleting start/end point
|
|
|
+ // keep polygon intact if deleting start/end point or uncommitted point
|
|
|
if (
|
|
|
isPolygon &&
|
|
|
- // don't disable polygon if cleaning up uncommitted point
|
|
|
- !isUncommittedPoint &&
|
|
|
- (pointIndices.includes(0) ||
|
|
|
+ (isUncommittedPoint ||
|
|
|
+ pointIndices.includes(0) ||
|
|
|
pointIndices.includes(element.points.length - 1))
|
|
|
) {
|
|
|
- app.scene.mutateElement(element, { polygon: false });
|
|
|
- }
|
|
|
-
|
|
|
- const nextPoints = element.points.filter((_, idx) => {
|
|
|
- return !pointIndices.includes(idx);
|
|
|
- });
|
|
|
-
|
|
|
- if (isUncommittedPoint && isLineElement(element) && element.polygon) {
|
|
|
nextPoints[0] = pointFrom(
|
|
|
nextPoints[nextPoints.length - 1][0],
|
|
|
nextPoints[nextPoints.length - 1][1],
|