From d367f901a078696604e0651f734ce70a32339fea Mon Sep 17 00:00:00 2001 From: Austin Mroz Date: Fri, 29 Aug 2025 10:08:54 -0700 Subject: [PATCH] wip --- .../litegraph/src/subgraph/SubgraphNode.ts | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/lib/litegraph/src/subgraph/SubgraphNode.ts b/src/lib/litegraph/src/subgraph/SubgraphNode.ts index cfa05cf61..dfd3f75c1 100644 --- a/src/lib/litegraph/src/subgraph/SubgraphNode.ts +++ b/src/lib/litegraph/src/subgraph/SubgraphNode.ts @@ -591,14 +591,23 @@ export class SubgraphNode extends LGraphNode implements BaseLGraph { return n.widgets.find((w) => w.name === widgetName) } const overlay: object = {nodeId, widgetName, graph: this.subgraph} - const handler = Object.fromEntries(['get', 'set', 'getPrototypeOf'].map((s) => { - const func = function(t,p,r) { + const handler = Object.fromEntries(['get', 'set', 'getPrototypeOf', 'getOwnPropertyDescriptor', 'getOwnProperty', 'ownKeys'].map((s) => { + const func = function(t,p,...rest) { if (s == 'get' && p == '_overlay') return overlay + + const lw = linkedWidget(overlay.graph, overlay.nodeId, overlay.widgetName) + + if (s.startsWith('getOwnP')) + console.log("getOwnP", arguments) + if (s == 'ownKeys') { + console.log("ownkeys", arguments) + return [...Reflect.ownKeys(lw), ...Reflect.ownKeys(overlay)] + } if (s == 'get' && p == 'value') - return linkedWidget(overlay.graph, overlay.nodeId, overlay.widgetName).value + return lw.value if (s == 'set' && p == 'value') - return linkedWidget(overlay.graph, overlay.nodeId, overlay.widgetName).value = r + return lw.value = rest[0] if (s == 'get' && p == 'node') return {pos: this.pos, __proto__: linkedWidget(overlay.graph, overlay.nodeId, overlay.widgetName).node} @@ -608,7 +617,7 @@ export class SubgraphNode extends LGraphNode implements BaseLGraph { t = linkedWidget(overlay.graph, overlay.nodeId, overlay.widgetName) if (!t) return//TODO: pass to overlay subitem to display a disconnected state - return Reflect[s](t,p,r) + return Reflect[s](t,p,...rest) } return [s, func] }))