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";