From a6aec4017b7da0c80f186f826017f97e228444b2 Mon Sep 17 00:00:00 2001 From: Chenlei Hu Date: Wed, 26 Mar 2025 15:08:04 -0400 Subject: [PATCH] [Bug] Fix link drop on widget (#860) Resolves https://github.com/Comfy-Org/litegraph.js/issues/857 --- src/canvas/LinkConnector.ts | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/canvas/LinkConnector.ts b/src/canvas/LinkConnector.ts index ee1f8efa2..12d284839 100644 --- a/src/canvas/LinkConnector.ts +++ b/src/canvas/LinkConnector.ts @@ -519,9 +519,18 @@ export class LinkConnector { } isNodeValidDrop(node: LGraphNode): boolean { - return this.state.connectingTo === "output" - ? node.outputs.some(output => this.renderLinks.some(link => link.canConnectToOutput(node, output))) - : node.inputs.some(input => this.renderLinks.some(link => link.canConnectToInput(node, input))) + if (this.state.connectingTo === "output") { + return node.outputs.some(output => this.renderLinks.some(link => link.canConnectToOutput(node, output))) + } + + // If the node has widgets, some of them might be able to be converted to + // input slots on drop. The logic is handled in + // https://github.com/Comfy-Org/ComfyUI_frontend/blob/4d35d937cfec5dd802fc1b24916883293f3cbb9e/src/extensions/core/widgetInputs.ts#L670-L695 + if (node.widgets?.length) { + return true + } + + return node.inputs.some(input => this.renderLinks.some(link => link.canConnectToInput(node, input))) } /**