Browse Source

prevent element jumping during lasso selection

Ryan Di 1 week ago
parent
commit
ec246f90c5
1 changed files with 10 additions and 10 deletions
  1. 10 10
      packages/excalidraw/components/App.tsx

+ 10 - 10
packages/excalidraw/components/App.tsx

@@ -8412,6 +8412,7 @@ class App extends React.Component<AppProps, AppState> {
         event.shiftKey &&
         this.state.selectedLinearElement.elementId ===
           pointerDownState.hit.element?.id;
+
       if (
         (hasHitASelectedElement ||
           pointerDownState.hit.hasHitCommonBoundingBoxOfSelectedElements) &&
@@ -8443,6 +8444,15 @@ class App extends React.Component<AppProps, AppState> {
         // 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<AppProps, AppState> {
           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