Forráskód Böngészése

fix: allow box selection of points when inside editor (#5594)

Aakansha Doshi 2 éve
szülő
commit
b5fd904808

+ 1 - 1
src/components/App.tsx

@@ -3060,7 +3060,7 @@ class App extends React.Component<AppProps, AppState> {
           setCursor(this.canvas, CURSOR_TYPE.MOVE);
         }
       } else if (
-        shouldShowBoundingBox([element]) &&
+        shouldShowBoundingBox([element], this.state) &&
         isHittingElementBoundingBoxWithoutHittingElement(
           element,
           this.state,

+ 1 - 1
src/element/collision.ts

@@ -67,7 +67,7 @@ export const hitTest = (
 
   if (
     isElementSelected(appState, element) &&
-    shouldShowBoundingBox([element])
+    shouldShowBoundingBox([element], appState)
   ) {
     return isPointHittingElementBoundingBox(element, point, threshold);
   }

+ 5 - 1
src/element/transformHandles.ts

@@ -6,7 +6,7 @@ import {
 
 import { getElementAbsoluteCoords, Bounds } from "./bounds";
 import { rotate } from "../math";
-import { Zoom } from "../types";
+import { AppState, Zoom } from "../types";
 import { isTextElement } from ".";
 import { isLinearElement } from "./typeChecks";
 import { DEFAULT_SPACING } from "../renderer/renderScene";
@@ -267,7 +267,11 @@ export const getTransformHandles = (
 
 export const shouldShowBoundingBox = (
   elements: NonDeletedExcalidrawElement[],
+  appState: AppState,
 ) => {
+  if (appState.editingLinearElement) {
+    return false;
+  }
   if (elements.length > 1) {
     return true;
   }

+ 4 - 1
src/renderer/renderScene.ts

@@ -424,7 +424,10 @@ export const _renderScene = ({
       !appState.editingLinearElement
     ) {
       const locallySelectedElements = getSelectedElements(elements, appState);
-      const showBoundingBox = shouldShowBoundingBox(locallySelectedElements);
+      const showBoundingBox = shouldShowBoundingBox(
+        locallySelectedElements,
+        appState,
+      );
 
       const locallySelectedIds = locallySelectedElements.map(
         (element) => element.id,