diff --git a/src/element/collision.ts b/src/element/collision.ts index 8faa5553..562a9df2 100644 --- a/src/element/collision.ts +++ b/src/element/collision.ts @@ -48,9 +48,12 @@ export const hitTest = ( ): boolean => { // How many pixels off the shape boundary we still consider a hit const threshold = 10 / appState.zoom; - const check = isElementDraggableFromInside(element, appState) - ? isInsideCheck - : isNearCheck; + const check = + element.type === "text" + ? isStrictlyInside + : isElementDraggableFromInside(element, appState) + ? isInsideCheck + : isNearCheck; const point: Point = [x, y]; return hitTestPointAgainstElement({ element, point, threshold, check }); }; @@ -119,6 +122,10 @@ export const distanceToBindableElement = ( } }; +const isStrictlyInside = (distance: number, threshold: number): boolean => { + return distance < 0; +}; + const isInsideCheck = (distance: number, threshold: number): boolean => { return distance < threshold; };