mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-04-29 02:32:18 +00:00
[Experimental] hide/show logic improvement (#475)
* experimental hide/show logic improvement for #470 * minor early out fix not sure this is strictly needed (doesn't seem to be from a test, seems draw stops being called when hidden?) but better safe than sorry * use null * persist collapsed state
This commit is contained in:
committed by
GitHub
parent
b8a3e6b1ad
commit
ea01fde607
@@ -227,9 +227,14 @@ LGraphCanvas.prototype.computeVisibleNodes = function (): LGraphNode[] {
|
|||||||
const hidden = visibleNodes.indexOf(node) === -1
|
const hidden = visibleNodes.indexOf(node) === -1
|
||||||
for (const w of node.widgets) {
|
for (const w of node.widgets) {
|
||||||
if (w.element) {
|
if (w.element) {
|
||||||
w.element.hidden = hidden
|
w.element.dataset.isInVisibleNodes = hidden ? 'false' : 'true'
|
||||||
w.element.style.display = hidden ? 'none' : undefined
|
const shouldOtherwiseHide = w.element.dataset.shouldHide === 'true'
|
||||||
if (hidden) {
|
const isCollapsed = w.element.dataset.collapsed === 'true'
|
||||||
|
const wasHidden = w.element.hidden
|
||||||
|
const actualHidden = hidden || shouldOtherwiseHide || isCollapsed
|
||||||
|
w.element.hidden = actualHidden
|
||||||
|
w.element.style.display = actualHidden ? 'none' : null
|
||||||
|
if (actualHidden && !wasHidden) {
|
||||||
w.options.onHide?.(w)
|
w.options.onHide?.(w)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -309,15 +314,21 @@ LGraphNode.prototype.addDOMWidget = function (
|
|||||||
}
|
}
|
||||||
|
|
||||||
const hidden =
|
const hidden =
|
||||||
node.flags?.collapsed ||
|
|
||||||
(!!options.hideOnZoom && app.canvas.ds.scale < 0.5) ||
|
(!!options.hideOnZoom && app.canvas.ds.scale < 0.5) ||
|
||||||
widget.computedHeight <= 0 ||
|
widget.computedHeight <= 0 ||
|
||||||
widget.type === 'converted-widget' ||
|
widget.type === 'converted-widget' ||
|
||||||
widget.type === 'hidden'
|
widget.type === 'hidden'
|
||||||
element.hidden = hidden
|
element.dataset.shouldHide = hidden ? 'true' : 'false'
|
||||||
element.style.display = hidden ? 'none' : null
|
const isInVisibleNodes = element.dataset.isInVisibleNodes === 'true'
|
||||||
if (hidden) {
|
const isCollapsed = element.dataset.collapsed === 'true'
|
||||||
|
const actualHidden = hidden || !isInVisibleNodes || isCollapsed
|
||||||
|
const wasHidden = element.hidden
|
||||||
|
element.hidden = actualHidden
|
||||||
|
element.style.display = actualHidden ? 'none' : null
|
||||||
|
if (actualHidden && !wasHidden) {
|
||||||
widget.options.onHide?.(widget)
|
widget.options.onHide?.(widget)
|
||||||
|
}
|
||||||
|
if (actualHidden) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -379,6 +390,7 @@ LGraphNode.prototype.addDOMWidget = function (
|
|||||||
element.hidden = true
|
element.hidden = true
|
||||||
element.style.display = 'none'
|
element.style.display = 'none'
|
||||||
}
|
}
|
||||||
|
element.dataset.collapsed = this.flags?.collapsed ? 'true' : 'false'
|
||||||
}
|
}
|
||||||
|
|
||||||
const onRemoved = this.onRemoved
|
const onRemoved = this.onRemoved
|
||||||
|
|||||||
Reference in New Issue
Block a user