diff --git a/src/renderer/extensions/vueNodes/components/NodeWidgets.vue b/src/renderer/extensions/vueNodes/components/NodeWidgets.vue index 441c988b2..8e179b660 100644 --- a/src/renderer/extensions/vueNodes/components/NodeWidgets.vue +++ b/src/renderer/extensions/vueNodes/components/NodeWidgets.vue @@ -15,6 +15,7 @@ :style="{ 'grid-template-rows': gridTemplateRows }" + @pointerdown.capture="handleBringToFront" @pointerdown="handleWidgetPointerEvent" @pointermove="handleWidgetPointerEvent" @pointerup="handleWidgetPointerEvent" @@ -78,6 +79,7 @@ import { useErrorHandling } from '@/composables/useErrorHandling' import { st } from '@/i18n' import { useCanvasInteractions } from '@/renderer/core/canvas/useCanvasInteractions' import { useNodeTooltips } from '@/renderer/extensions/vueNodes/composables/useNodeTooltips' +import { useNodeZIndex } from '@/renderer/extensions/vueNodes/composables/useNodeZIndex' import WidgetDOM from '@/renderer/extensions/vueNodes/widgets/components/WidgetDOM.vue' // Import widget components directly import WidgetLegacy from '@/renderer/extensions/vueNodes/widgets/components/WidgetLegacy.vue' @@ -98,12 +100,20 @@ const { nodeData } = defineProps() const { shouldHandleNodePointerEvents, forwardEventToCanvas } = useCanvasInteractions() +const { bringNodeToFront } = useNodeZIndex() + function handleWidgetPointerEvent(event: PointerEvent) { if (shouldHandleNodePointerEvents.value) return event.stopPropagation() forwardEventToCanvas(event) } +function handleBringToFront() { + if (nodeData?.id != null) { + bringNodeToFront(String(nodeData.id)) + } +} + // Error boundary implementation const renderError = ref(null)