diff --git a/src/renderer/extensions/vueNodes/widgets/components/SeedControlPopover.vue b/src/renderer/extensions/vueNodes/widgets/components/SeedControlPopover.vue index 8c91473ab..221174f7c 100644 --- a/src/renderer/extensions/vueNodes/widgets/components/SeedControlPopover.vue +++ b/src/renderer/extensions/vueNodes/widgets/components/SeedControlPopover.vue @@ -24,20 +24,10 @@ type ControlOption = { const popover = ref() const settingStore = useSettingStore() -const controlSettings = ref({ - linkToGlobal: false, - randomize: false, - increment: true, - decrement: false -}) - -const widgetControlMode = computed(() => - settingStore.get('Comfy.WidgetControlMode') -) - const toggle = (event: Event) => { popover.value.toggle(event) } +defineExpose({ toggle }) const controlOptions: ControlOption[] = [ { @@ -66,7 +56,30 @@ const controlOptions: ControlOption[] = [ } ] -defineExpose({ toggle }) +const widgetControlMode = computed(() => + settingStore.get('Comfy.WidgetControlMode') +) + +const controlSettings = ref({ + linkToGlobal: false, + randomize: true, + increment: false, + decrement: false +}) + +const handleToggle = (key: keyof ControlSettings) => { + // If turning on, turn off all others first + if (!controlSettings.value[key]) { + controlSettings.value = { + linkToGlobal: false, + randomize: false, + increment: false, + decrement: false + } + } + // Toggle the clicked one + controlSettings.value[key] = !controlSettings.value[key] +}