* Litegraph: canvas.pointer
Clear @ts-expect-error
Fix exception thrown on slot double-click
Long-standing bug but has no real impact in prod - just logs an error.
Required for new connecting_link features.
Add settings: CanvasPointer options
Update litegraph 0.8.28
Fix regression in snap to grid render
Fix snap to grid marker always on
Update snap to grid to use Positionable API
Fix test clicks registering as double-click
Improve test precision
Current test proves it has changed to something smaller.
New test proves it is exactly what was specified.
Will need refinement when a limit is put on latent width.
Fix test expects collapse node to select node
Remove redundant code
Resolved by CanvasPointer
Fix flaky test - ContextMenu
Fix settings group
* Update litegraph
* Remove snapToGrid extension
* Update test expectations [skip ci]
---------
Co-authored-by: huchenlei <huchenlei@proton.me>
Co-authored-by: github-actions <github-actions@github.com>
* 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
* implmentation of new mask editor
* fixed some problems, added some new ones
* Refactor: Split implementation into classes, fix multiple bugs -> all initial features work, more testing required
* first release - fixed all known issues, tested, added color select tool and settings toggle
* Add position rounding feature
Replaces previous impls. which only worked on some items, and were triggered when unexpected e.g. clicking a node that hadn't been moved.
Update test expectations
* Narrow TS types - readonly
* nit - Clean up, Doc
* nit - Clean up legacy accessors
Marks as deprecated
* Fix TS type - IContextMenuOptions.scale
* [Refactor] dist2 for use in pointer API
* Add CanvasPointer - API for pointer events
Add TS strict types
Add final click drag distance math
Add option to retain events
* nit - Rename
* nit
* Remove Subgraph - unused & not maintained
* Remove live_mode
Unused, not maintained.
* Update README
Remove live_mode reference
* Update delete selected - include reroutes & groups
* Bypass link menu if alt/shift pressed
* Remove old dragged_node interface
Incomplete impl. - unused.
Superceded by selectedItems
* Fix top/left edge of rectangles not in hitbox
* [Refactor] Match function names to interface names
* Add interface to find widgets by Point
LGraphNode.getWidgetOnPos
* Add widget search param - includeDisabled
* nit - Doc
* Rewrite canvas mouse handling
- Rewrites most pointer handling to use CanvasPointer callbacks
- All callbacks are declared ahead of time during the initial pointerdown event, logically grouped together
- Drastically simplifies the alteration or creation of new click / drag interactions
- Click events are all clicks, rather than some processed on mouse down, others on mouse up
- Functions return instead of setting and repeatedly checking multiple state vars
- Removes all lines that needed THIRTEEN tab indents
* Split middle click out from processMouseDown
* Use pointer API for link menus
* Narrow canvas event interfaces
* Fix canvas event types
Replaces original workarounds with final types
* Refactor - deprecated isInsideRectangle
* Add canvas hovering over state
- Centralises cursor set behaviour
- Provides simple downstream override
* nit
* [Refactor] Use measure functions
* Add double-click API to CanvasPointer
a
* nit - Doc
* Allow larger gap between double click events
* Rewrite double-click into CanvasPointer actions
* Improve double-click UX
Prefer down events over up events
* Add production defaults
* Add middle-click handling
* Remove debug code
* Remove redundant code
* Fix add reroute alt-click adds two undo steps
* Fix click on connected input disconnects
Old behaviour was to disconnect, then recreate a new link on drop.
* Add module export: CanvasPointer
* Add option to disable ctrl + shift + zoom
Minor change to default behaviour: zoom no longer triggers if alt key is also down.
* Update coreSettings.ts
Next release will be 1.4.0 to leave room for patches in 1.3 stable after today's main repo sync.
---------
Co-authored-by: Chenlei Hu <huchenlei@proton.me>