From 9c0e715cb8586bb9bf50bf8122aa8179a8d6847a Mon Sep 17 00:00:00 2001 From: dwelle <5153846+dwelle@users.noreply.github.com> Date: Wed, 12 Nov 2025 22:31:22 +0100 Subject: [PATCH] feat: hide point highlight when dragging --- packages/element/src/linearElementEditor.ts | 2 +- packages/excalidraw/components/App.tsx | 1 + .../excalidraw/renderer/interactiveScene.ts | 20 ++++++++++--------- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/packages/element/src/linearElementEditor.ts b/packages/element/src/linearElementEditor.ts index 946bd33a97..07bab96e97 100644 --- a/packages/element/src/linearElementEditor.ts +++ b/packages/element/src/linearElementEditor.ts @@ -630,7 +630,7 @@ export class LinearElementEditor { ? endBindingElement : null; - const newLinearElementEditor = { + const newLinearElementEditor: LinearElementEditor = { ...linearElementEditor, selectedPointsIndices: newSelectedPointsIndices, initialState: { diff --git a/packages/excalidraw/components/App.tsx b/packages/excalidraw/components/App.tsx index c672493c8e..4f0c850196 100644 --- a/packages/excalidraw/components/App.tsx +++ b/packages/excalidraw/components/App.tsx @@ -8911,6 +8911,7 @@ class App extends React.Component { this.setState({ selectedLinearElement: { ...this.state.selectedLinearElement, + isDragging: true, segmentMidPointHoveredCoords: ret.segmentMidPointHoveredCoords, initialState: ret.initialState, }, diff --git a/packages/excalidraw/renderer/interactiveScene.ts b/packages/excalidraw/renderer/interactiveScene.ts index fd1cf60faa..c4c606cbec 100644 --- a/packages/excalidraw/renderer/interactiveScene.ts +++ b/packages/excalidraw/renderer/interactiveScene.ts @@ -1278,15 +1278,17 @@ const _renderInteractiveScene = ({ (el) => el.id === editor.elementId, // Don't forget bound text elements! ); - if (editor.segmentMidPointHoveredCoords) { - renderElbowArrowMidPointHighlight(context, appState); - } else if ( - isElbowArrow(firstSelectedLinear) - ? editor.hoverPointIndex === 0 || - editor.hoverPointIndex === firstSelectedLinear.points.length - 1 - : editor.hoverPointIndex >= 0 - ) { - renderLinearElementPointHighlight(context, appState, elementsMap); + if (!appState.selectedLinearElement.isDragging) { + if (editor.segmentMidPointHoveredCoords) { + renderElbowArrowMidPointHighlight(context, appState); + } else if ( + isElbowArrow(firstSelectedLinear) + ? editor.hoverPointIndex === 0 || + editor.hoverPointIndex === firstSelectedLinear.points.length - 1 + : editor.hoverPointIndex >= 0 + ) { + renderLinearElementPointHighlight(context, appState, elementsMap); + } } }