From 2d7123fc6b92418991b170777f0d36b34e38c29b Mon Sep 17 00:00:00 2001 From: Terry Jia Date: Tue, 23 Dec 2025 15:48:34 -0500 Subject: [PATCH] fix: sync node.imgs on image load for VueNodes context menu --- .../vueNodes/components/ImagePreview.vue | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/renderer/extensions/vueNodes/components/ImagePreview.vue b/src/renderer/extensions/vueNodes/components/ImagePreview.vue index 538a5a5d34..664f63114c 100644 --- a/src/renderer/extensions/vueNodes/components/ImagePreview.vue +++ b/src/renderer/extensions/vueNodes/components/ImagePreview.vue @@ -198,6 +198,8 @@ const handleImageLoad = (event: Event) => { if (img.naturalWidth && img.naturalHeight) { actualDimensions.value = `${img.naturalWidth} x ${img.naturalHeight}` } + + syncNodeImgs() } const handleImageError = () => { @@ -207,14 +209,21 @@ const handleImageError = () => { actualDimensions.value = null } -// In vueNodes mode, we need to set them manually before opening the mask editor. -const setupNodeForMaskEditor = () => { +// Sync node.imgs so context menu can detect this as an image node +const syncNodeImgs = () => { if (!props.nodeId || !currentImageEl.value) return const node = app.rootGraph?.getNodeById(props.nodeId) if (!node) return node.imageIndex = currentIndex.value node.imgs = [currentImageEl.value] - app.canvas?.select(node) +} + +// In vueNodes mode, we need to set them manually before opening the mask editor. +const setupNodeForMaskEditor = () => { + syncNodeImgs() + if (!props.nodeId) return + const node = app.rootGraph?.getNodeById(props.nodeId) + if (node) app.canvas?.select(node) } const handleEditMask = () => {