diff --git a/src/components/App.tsx b/src/components/App.tsx index 880462bbc..d80b6d479 100644 --- a/src/components/App.tsx +++ b/src/components/App.tsx @@ -3750,9 +3750,27 @@ class App extends React.Component { return; } + let { x: sceneX, y: sceneY } = viewportCoordsToSceneCoords( + event, + this.state, + ); + const selectedElements = this.scene.getSelectedElements(this.state); if (selectedElements.length === 1 && isLinearElement(selectedElements[0])) { + const pointUnderCursorIndex = LinearElementEditor.getPointIndexUnderCursor( + selectedElements[0], + this.state.zoom, + sceneX, + sceneY, + ); + if (pointUnderCursorIndex >= 0) { + LinearElementEditor.toggleSegmentSplitAtIndex( + selectedElements[0], + pointUnderCursorIndex, + ); + return; + } if ( event[KEYS.CTRL_OR_CMD] && (!this.state.editingLinearElement || @@ -3776,11 +3794,6 @@ class App extends React.Component { resetCursor(this.interactiveCanvas); - let { x: sceneX, y: sceneY } = viewportCoordsToSceneCoords( - event, - this.state, - ); - const selectedGroupIds = getSelectedGroupIds(this.state); if (selectedGroupIds.length > 0) { diff --git a/src/element/linearElementEditor.ts b/src/element/linearElementEditor.ts index bdb9a0a73..a8e371f8f 100644 --- a/src/element/linearElementEditor.ts +++ b/src/element/linearElementEditor.ts @@ -1475,7 +1475,6 @@ export class LinearElementEditor { static toggleSegmentSplitAtIndex( element: NonDeleted, - appState: AppState, index: number, ) { let found = false; @@ -1491,7 +1490,7 @@ export class LinearElementEditor { } mutateElement(element, { - segmentSplitIndices: splitIndices, + segmentSplitIndices: splitIndices.sort(), }); } }