mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-02-08 17:10:07 +00:00
Snap everything to grid (#315)
* Implement snap to grid - Moves positioning logic to LGraph - Simplifies code - Adds Pointer API to alt-clone node - Removes always_round_positions, replaced by always snap to grid (default size is 1 when always snapping) Fix refator error * Fix group items snapped without group * Allow snapping of all items - Add snapToGrid to Positionable - Impl. on all types - Deprecated: alignToGrid is now a wrapper * Fix test import alias, update expectations * Prevent desync of before / after change events Adds ability to perform late binding of finally() during drag start. * nit - Refactor * Fix unwanted snap on node/group add * nit - Doc * Add shift key state tracking for snap to grid Private impl., no state API as yet. * Add snap guides rendering Nodes, reroutes * Optimisation - reroute rendering Fixes exponential redraw * Add snap guidelines for groups
This commit is contained in:
@@ -42,6 +42,15 @@ export interface Positionable extends Parent<Positionable> {
|
||||
*/
|
||||
move(deltaX: number, deltaY: number, skipChildren?: boolean): void
|
||||
|
||||
/**
|
||||
* Snaps this item to a grid.
|
||||
*
|
||||
* Position values are rounded to the nearest multiple of {@link snapTo}.
|
||||
* @param snapTo The size of the grid to align to
|
||||
* @returns `true` if it moved, or `false` if the snap was rejected (e.g. `pinned`)
|
||||
*/
|
||||
snapToGrid(snapTo: number): boolean
|
||||
|
||||
/**
|
||||
* Cached position & size as `x, y, width, height`.
|
||||
* @readonly See {@link move}
|
||||
|
||||
Reference in New Issue
Block a user