* 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>
* Add copy & paste of groups & reroutes
Complete rewrite of copy & paste
Fixes a bug where failure to clone a node would corrupt all subsequent nodes
No longer mutates nodes when copying
* Fix name collision
* Fix cannot copy specified nodes to clipboard
* Allow mapping of original IDs to pasted clones
* Improved touch support
* Fix touch support scaling error
* Fix touch scaling precision on all zoom levels
* Improved touch experiene, fixed zooming on textarea elements and fixed context menu.
* Minor bug fix
* Fix missing await
* Fix flaky tests - keyboard combos
Old code is causing playwright &/ changeTracker to add an undo step. Using combo mode resolves flakiness until that can be investigated thoroughly.
* Restore skipped tests
* Fix flaky tests
* Async clean up
* Fix test always fails on retry
* Add TS types (tests)
* Fix flaky test
* Add observable busy state to workflow store
* Add workflow store busy wait to tests
* Rename test for clarity
* Fix flaky tests - use press() from locator API
Ref: https://playwright.dev/docs/api/class-keyboard#keyboard-press
* Fix flaky test - wait next frame
* Add delay between mouse events
Litegraph pointer handling is all custom coded, so a adding a delay between events for a bit of reality is actually beneficial.