From 5103c8df3f30ed9ce11f6c430ea07696ab34932d Mon Sep 17 00:00:00 2001 From: Comfy Org PR Bot Date: Mon, 1 Dec 2025 08:42:50 +0900 Subject: [PATCH] [backport core/1.33] Expose LGraphNode.getSlotPosition (#7058) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Backport of #7042 to `core/1.33` Automatically created by backport workflow. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-7058-backport-core-1-33-Expose-LGraphNode-getSlotPosition-2bb6d73d365081ce9a18f1d4a802276a) by [Unito](https://www.unito.io) Co-authored-by: niknah --- src/lib/litegraph/src/LGraphNode.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/lib/litegraph/src/LGraphNode.ts b/src/lib/litegraph/src/LGraphNode.ts index d4149e6ec..7dc9652a4 100644 --- a/src/lib/litegraph/src/LGraphNode.ts +++ b/src/lib/litegraph/src/LGraphNode.ts @@ -2,7 +2,8 @@ import { LGraphNodeProperties } from '@/lib/litegraph/src/LGraphNodeProperties' import { calculateInputSlotPos, calculateInputSlotPosFromSlot, - calculateOutputSlotPos + calculateOutputSlotPos, + getSlotPosition } from '@/renderer/core/canvas/litegraph/slotCalculations' import type { SlotPositionContext } from '@/renderer/core/canvas/litegraph/slotCalculations' import { useLayoutMutations } from '@/renderer/core/layout/operations/layoutMutations' @@ -3354,6 +3355,16 @@ export class LGraphNode ) } + /** + * Get slot position using layout tree if available, fallback to node's position * Unified implementation used by both LitegraphLinkAdapter and useLinkLayoutSync + * @param slotIndex The slot index + * @param isInput Whether this is an input slot + * @returns Position of the slot center in graph coordinates + */ + getSlotPosition(slotIndex: number, isInput: boolean): Point { + return getSlotPosition(this, slotIndex, isInput) + } + /** @inheritdoc */ snapToGrid(snapTo: number): boolean { return this.pinned ? false : snapPoint(this.pos, snapTo)