Commit 29dbfa3
fix: Vue Node <-> Litegraph node height offset normalization (#6966)
## Summary
Changes the layout store to treat node sizes as body-only measurements
while LiteGraph continues to reason about full heights. DOM-driven
updates are tagged with `LayoutSource.DOM`, which lets the store strip
the title height exactly once before persisting. That classification (a
new mutation source - `LayoutSource.DOM`) is accurate because those
mutations are triggered by the browser’s layout engine via
ResizeObserver, rather than by direct calls into the layout APIs (e.g.,
`moveNodeTo`, `useNodeDrag`). So all sources are:
- `LayoutSource.DOM`: browser layout/ResizeObserver measurements that
include the title bar
- `LayoutSource.Vue`: direct Vue-driven mutations routed through the
layout store
- `LayoutSource.Canvas`: legacy LiteGraph/canvas updates that will be
phased out over time
- `LayoutSource.External`: for multiplayer or syncing with a when going
online after making changes offline (in teams/workspace)
When layout state flows back into LiteGraph we add the title height just
in time for `liteNode.setSize`, so LiteGraph’s rendering stays
unchanged. This makes Vue node resizing and workflow persistence
deterministic - multiline widgets hold their dimensions across reloads
because every path that crosses the layout/LiteGraph boundary performs
the same normalization.
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-6966-normalize-height-at-sites-2b76d73d365081b6bcb4f4ce6a27663a)
by [Unito](https://www.unito.io)
---------
Co-authored-by: github-actions <[email protected]>1 parent 83f0449 commit 29dbfa3
File tree
24 files changed
+159
-23
lines changed- browser_tests/tests/vueNodes
- groups/groups.spec.ts-snapshots
- interactions
- canvas/zoom.spec.ts-snapshots
- links/linkInteraction.spec.ts-snapshots
- node/move.spec.ts-snapshots
- nodeStates
- bypass.spec.ts-snapshots
- colors.spec.ts-snapshots
- mute.spec.ts-snapshots
- src
- composables/graph
- lib/litegraph/src
- renderer
- core/layout
- store
- sync
- utils
- extensions/vueNodes/composables
- tests-ui/tests/renderer
- core/layout
- extensions/vueNodes/composables
24 files changed
+159
-23
lines changed
0 commit comments