[Refactor] Convert save viewport in workflow to watcher (#3673)

This commit is contained in:
filtered
2025-04-29 06:49:41 +10:00
committed by GitHub
parent 5ec4ec8303
commit bd1890a422
2 changed files with 26 additions and 25 deletions

View File

@@ -220,6 +220,32 @@ watch(
}
)
// Save the drag & scale info in the serialized workflow if the setting is enabled
watch(
[
() => canvasStore.canvas,
() => settingStore.get('Comfy.EnableWorkflowViewRestore')
],
([canvas, enableWorkflowViewRestore]) => {
const extra = canvas?.graph?.extra
if (!extra) return
if (enableWorkflowViewRestore) {
extra.ds = {
get scale() {
return canvas.ds.scale
},
get offset() {
const [x, y] = canvas.ds.offset
return [x, y]
}
}
} else {
delete extra.ds
}
}
)
const loadCustomNodesI18n = async () => {
try {
const i18nData = await api.getCustomNodesI18n()

View File

@@ -425,30 +425,6 @@ export class ComfyApp {
}
}
#addRestoreWorkflowView() {
const serialize = LGraph.prototype.serialize
const self = this
LGraph.prototype.serialize = function (...args) {
const workflow = serialize.apply(this, args)
// Store the drag & scale info in the serialized workflow if the setting is enabled
if (useSettingStore().get('Comfy.EnableWorkflowViewRestore')) {
if (!workflow.extra) {
workflow.extra = {}
}
workflow.extra.ds = {
scale: self.canvas.ds.scale,
offset: [...self.canvas.ds.offset]
}
} else if (workflow.extra?.ds) {
// Clear any old view data
delete workflow.extra.ds
}
return workflow
}
}
/**
* Adds a handler allowing drag+drop of files onto the window to load workflows
*/
@@ -768,7 +744,6 @@ export class ComfyApp {
this.#addProcessKeyHandler()
this.#addConfigureHandler()
this.#addApiUpdateHandlers()
this.#addRestoreWorkflowView()
this.graph = new LGraph()