diff --git a/src/renderer/core/layout/sync/useLayoutSync.ts b/src/renderer/core/layout/sync/useLayoutSync.ts index d6d8b1a20..c3cbb9ebd 100644 --- a/src/renderer/core/layout/sync/useLayoutSync.ts +++ b/src/renderer/core/layout/sync/useLayoutSync.ts @@ -47,8 +47,8 @@ export function useLayoutSync() { liteNode.size[0] !== layout.size.width || liteNode.size[1] !== layout.size.height ) { - liteNode.size[0] = layout.size.width - liteNode.size[1] = layout.size.height + // Use setSize() to trigger onResize callback + liteNode.setSize([layout.size.width, layout.size.height]) } } diff --git a/src/renderer/extensions/vueNodes/components/NodeWidgets.vue b/src/renderer/extensions/vueNodes/components/NodeWidgets.vue index f2c187f03..f4703237b 100644 --- a/src/renderer/extensions/vueNodes/components/NodeWidgets.vue +++ b/src/renderer/extensions/vueNodes/components/NodeWidgets.vue @@ -6,7 +6,8 @@ v-else :class=" cn( - 'lg-node-widgets flex flex-col has-[.widget-expands]:flex-1 gap-2 pr-3', + 'lg-node-widgets flex flex-col gap-2 pr-3', + hasWidgetNeedingVerticalSpace && 'min-h-0 flex-1', shouldHandleNodePointerEvents ? 'pointer-events-auto' : 'pointer-events-none' @@ -19,7 +20,14 @@
@@ -114,8 +122,15 @@ interface ProcessedWidget { updateHandler: (value: unknown) => void tooltipConfig: any slotMetadata?: WidgetSlotMetadata + needsVerticalSpace: boolean } +const hasWidgetNeedingVerticalSpace = computed((): boolean => { + if (!nodeData?.widgets) return false + const widgets = nodeData.widgets as SafeWidgetData[] + return widgets.some((w) => w.options?.needsVerticalSpace === true) +}) + const processedWidgets = computed((): ProcessedWidget[] => { if (!nodeData?.widgets) return [] @@ -167,6 +182,9 @@ const processedWidgets = computed((): ProcessedWidget[] => { const tooltipText = getWidgetTooltip(widget) const tooltipConfig = createTooltipConfig(tooltipText) + // Check if this widget needs vertical space + const needsVerticalSpace = widget.options?.needsVerticalSpace === true + result.push({ name: widget.name, type: widget.type, @@ -175,7 +193,8 @@ const processedWidgets = computed((): ProcessedWidget[] => { value: widget.value, updateHandler, tooltipConfig, - slotMetadata + slotMetadata, + needsVerticalSpace }) } diff --git a/src/scripts/domWidget.ts b/src/scripts/domWidget.ts index a550a4145..827eb826b 100644 --- a/src/scripts/domWidget.ts +++ b/src/scripts/domWidget.ts @@ -102,6 +102,11 @@ export interface DOMWidgetOptions