From 47498796e00606afd2a69fc0d1cd1d4d6566790c Mon Sep 17 00:00:00 2001 From: ad1992 Date: Thu, 24 Mar 2022 15:06:22 +0530 Subject: [PATCH] fix hit testing for custom elements --- src/element/collision.ts | 9 ++++++++- src/element/typeChecks.ts | 5 +++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/element/collision.ts b/src/element/collision.ts index 0c8a73caa..9d731e651 100644 --- a/src/element/collision.ts +++ b/src/element/collision.ts @@ -33,13 +33,20 @@ import { Point } from "../types"; import { Drawable } from "roughjs/bin/core"; import { AppState } from "../types"; import { getShapeForElement } from "../renderer/renderElement"; -import { hasBoundTextElement, isImageElement } from "./typeChecks"; +import { + hasBoundTextElement, + isCustomElement, + isImageElement, +} from "./typeChecks"; import { isTextElement } from "."; import { isTransparent } from "../utils"; const isElementDraggableFromInside = ( element: NonDeletedExcalidrawElement, ): boolean => { + if (isCustomElement(element)) { + return true; + } if (element.type === "arrow") { return false; } diff --git a/src/element/typeChecks.ts b/src/element/typeChecks.ts index 4776fd872..b05dee4c4 100644 --- a/src/element/typeChecks.ts +++ b/src/element/typeChecks.ts @@ -10,6 +10,7 @@ import { ExcalidrawImageElement, ExcalidrawTextElementWithContainer, ExcalidrawTextContainer, + ExcalidrawCustomElement, } from "./types"; export const isGenericElement = ( @@ -133,3 +134,7 @@ export const isBoundToContainer = ( element !== null && isTextElement(element) && element.containerId !== null ); }; + +export const isCustomElement = ( + element: ExcalidrawElement, +): element is ExcalidrawCustomElement => element && element.type === "custom";