diff --git a/packages/excalidraw/components/App.tsx b/packages/excalidraw/components/App.tsx index ea087a9991..25175d07b5 100644 --- a/packages/excalidraw/components/App.tsx +++ b/packages/excalidraw/components/App.tsx @@ -8412,6 +8412,7 @@ class App extends React.Component { event.shiftKey && this.state.selectedLinearElement.elementId === pointerDownState.hit.element?.id; + if ( (hasHitASelectedElement || pointerDownState.hit.hasHitCommonBoundingBoxOfSelectedElements) && @@ -8443,6 +8444,15 @@ class App extends React.Component { // if elements should be deselected on pointerup pointerDownState.drag.hasOccurred = true; + // prevent immediate dragging during lasso selection to avoid element displacement + // only allow dragging if we're not in the middle of lasso selection + if ( + this.state.activeTool.type === "lasso" && + this.lassoTrail.hasCurrentTrail + ) { + return; + } + // Clear lasso trail when starting to drag selected elements with lasso tool // Only clear if we're actually dragging (not during lasso selection) if ( @@ -8454,16 +8464,6 @@ class App extends React.Component { this.lassoTrail.endPath(); } - // prevent immediate dragging during lasso selection to avoid element displacement - // only allow dragging if we're not in the middle of lasso selection - if ( - this.state.activeTool.type === "lasso" && - !this.state.activeTool.fromSelection && - this.lassoTrail.hasCurrentTrail - ) { - return; - } - // prevent dragging even if we're no longer holding cmd/ctrl otherwise // it would have weird results (stuff jumping all over the screen) // Checking for editingTextElement to avoid jump while editing on mobile #6503