From 4f82c32861a92bff63f63d8c9ee43b49299a64f0 Mon Sep 17 00:00:00 2001 From: Ryan Di Date: Fri, 11 Oct 2024 17:58:03 +0800 Subject: [PATCH] fix image hit and increase mini size to 10 --- packages/excalidraw/components/App.tsx | 2 +- packages/excalidraw/element/cropElement.ts | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/excalidraw/components/App.tsx b/packages/excalidraw/components/App.tsx index 479a24464..57bddd561 100644 --- a/packages/excalidraw/components/App.tsx +++ b/packages/excalidraw/components/App.tsx @@ -4943,7 +4943,7 @@ class App extends React.Component { const selectionShape = getSelectionBoxShape( element, this.scene.getNonDeletedElementsMap(), - this.getElementHitThreshold(), + isImageElement(element) ? 0 : this.getElementHitThreshold(), ); return isPointInShape(pointFrom(x, y), selectionShape); diff --git a/packages/excalidraw/element/cropElement.ts b/packages/excalidraw/element/cropElement.ts index 895188b2c..1ca96c25e 100644 --- a/packages/excalidraw/element/cropElement.ts +++ b/packages/excalidraw/element/cropElement.ts @@ -26,6 +26,8 @@ import { getResizedElementAbsoluteCoords, } from "./bounds"; +const MINIMAL_CROP_SIZE = 10; + export const cropElement = ( element: ExcalidrawImageElement, transformHandle: TransformHandleType, @@ -85,7 +87,7 @@ export const cropElement = ( const pointerDeltaY = pointerY - element.y; nextHeight = clamp( element.height - pointerDeltaY, - 1, + MINIMAL_CROP_SIZE, isFlippedByY ? uncroppedHeight - croppedTop : element.height + croppedTop, ); crop.height = (nextHeight / uncroppedHeight) * naturalHeight; @@ -96,7 +98,7 @@ export const cropElement = ( } else if (transformHandle.includes("s")) { nextHeight = clamp( pointerY - element.y, - 1, + MINIMAL_CROP_SIZE, isFlippedByY ? element.height + croppedTop : uncroppedHeight - croppedTop, ); crop.height = (nextHeight / uncroppedHeight) * naturalHeight; @@ -112,7 +114,7 @@ export const cropElement = ( nextWidth = clamp( element.width - pointerDeltaX, - 1, + MINIMAL_CROP_SIZE, isFlippedByX ? uncroppedWidth - croppedLeft : element.width + croppedLeft, ); @@ -124,7 +126,7 @@ export const cropElement = ( } else if (transformHandle.includes("e")) { nextWidth = clamp( pointerX - element.x, - 1, + MINIMAL_CROP_SIZE, isFlippedByX ? element.width + croppedLeft : uncroppedWidth - croppedLeft, ); crop.width = nextWidth * naturalWidthToUncropped;