From f82bb71b1eaf174e9ef669cf012c66e2306e682c Mon Sep 17 00:00:00 2001 From: Christian Byrne Date: Mon, 21 Apr 2025 18:21:25 +0800 Subject: [PATCH] Fix client => canvas position conversion (#3540) --- src/composables/element/useCanvasPositionConversion.ts | 4 ++-- src/composables/useCanvasDrop.ts | 8 +++----- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/composables/element/useCanvasPositionConversion.ts b/src/composables/element/useCanvasPositionConversion.ts index e8cb7a9ee..77e86ddec 100644 --- a/src/composables/element/useCanvasPositionConversion.ts +++ b/src/composables/element/useCanvasPositionConversion.ts @@ -16,8 +16,8 @@ export const useCanvasPositionConversion = ( const clientPosToCanvasPos = (pos: Vector2): Vector2 => { const { offset, scale } = lgCanvas.ds return [ - (pos[0] - left.value) / scale + offset[0], - (pos[1] - top.value) / scale + offset[1] + (pos[0] - left.value) / scale - offset[0], + (pos[1] - top.value) / scale - offset[1] ] } diff --git a/src/composables/useCanvasDrop.ts b/src/composables/useCanvasDrop.ts index 37925a5ff..1948b13d3 100644 --- a/src/composables/useCanvasDrop.ts +++ b/src/composables/useCanvasDrop.ts @@ -29,12 +29,10 @@ export const useCanvasDrop = (canvasRef: Ref) => { const node = dndData.data as RenderedTreeExplorerNode if (node.data instanceof ComfyNodeDefImpl) { const nodeDef = node.data - // Add an offset on x to make sure after adding the node, the cursor + const pos = comfyApp.clientPosToCanvasPos([loc.clientX, loc.clientY]) + // Add an offset on y to make sure after adding the node, the cursor // is on the node (top left corner) - const pos = comfyApp.clientPosToCanvasPos([ - loc.clientX, - loc.clientY + LiteGraph.NODE_TITLE_HEIGHT - ]) + pos[1] += LiteGraph.NODE_TITLE_HEIGHT litegraphService.addNodeOnGraph(nodeDef, { pos }) } else if (node.data instanceof ComfyModelDef) { const model = node.data