diff --git a/frontend/src/ui/pages/CanvasWorkspace/index.tsx b/frontend/src/ui/pages/CanvasWorkspace/index.tsx index c6f8bc8..b21cd97 100644 --- a/frontend/src/ui/pages/CanvasWorkspace/index.tsx +++ b/frontend/src/ui/pages/CanvasWorkspace/index.tsx @@ -5024,6 +5024,21 @@ function canvasBackgroundStorageKey(projectId: string) { return `fluxo:canvas-background:${projectId}`; } +function isTransparentClipboardNode(node: CanvasNode) { + return node.type === "image" && (node.layerRole === "background-removed" || node.tone === "transparent-image"); +} + +async function shouldUseInternalClipboardNode(node: CanvasNode, imageFiles: File[]) { + const imageFile = imageFiles[0]; + if (!imageFile) return false; + try { + const dimensions = await readImageDimensions(imageFile); + return dimensions.width === Math.max(1, Math.round(node.width)) && dimensions.height === Math.max(1, Math.round(node.height)); + } catch { + return false; + } +} + async function writeCanvasNodeToSystemClipboard(node: CanvasNode) { if (node.type === "text") { await writeClipboardText(node.content || node.title);