enso/lib/rust
Ilya Bogdanov fb52c1a9a2
Applying Magnet Alignment Algorithm to newly opened Component Browser (#3366)
[Task link](https://www.pivotaltracker.com/story/show/181076594)

This PR enables new node position adjustment using the Magnet Alignment algorithm for the following cases:

- When creating node with (+) button without nodes selected
- When creating node with "Mouse pointer dictated placement." not under the source node
- When the node is pushed left due to lack of space - only horizontally

The size of the `alignment area` around node is slightly enlarged, so that it's impossible to create a node that is being too close to other nodes.

Videos with AC demonstration:

https://user-images.githubusercontent.com/6566674/160565491-818b1705-43f8-41ab-abad-047031b2f9e5.mp4


https://user-images.githubusercontent.com/6566674/160565501-d2d4ea85-68c7-4385-9681-701ab86fdd98.mp4


https://user-images.githubusercontent.com/6566674/160565535-9cbeadfe-397b-4cf8-802a-1ec4148a70a2.mp4
2022-04-05 11:22:29 +00:00
..
automata Linting codebase 2022-03-10 05:32:33 +01:00
build-utils Linting codebase 2022-03-10 05:32:33 +01:00
callback Linting codebase 2022-03-10 05:32:33 +01:00
code-builder Linting codebase 2022-03-10 05:32:33 +01:00
config-reader Linting codebase 2022-03-10 05:32:33 +01:00
data-structures Linting codebase 2022-03-10 05:32:33 +01:00
ensogl Applying Magnet Alignment Algorithm to newly opened Component Browser (#3366) 2022-04-05 11:22:29 +00:00
frp Placement of newly opened Component Browser when nodes are selected (#3361) 2022-03-31 20:17:04 +00:00
fuzzly Linting codebase 2022-03-10 05:32:33 +01:00
generics Linting codebase 2022-03-10 05:32:33 +01:00
json-rpc Fixing build. 2022-03-10 06:21:57 +01:00
launcher-shims Applying review 2022-03-10 05:57:59 +01:00
logger Updating paste macro usage (#3334) 2022-03-22 11:43:14 +01:00
macro-utils Linting codebase 2022-03-10 05:32:33 +01:00
optics Updating paste macro usage (#3334) 2022-03-22 11:43:14 +01:00
parser Fixing build. 2022-03-10 06:21:57 +01:00
prelude Placement of newly opened Component Browser when nodes are selected (#3361) 2022-03-31 20:17:04 +00:00
profiler GraphEditor Unit Tests (#3352) 2022-03-30 12:49:07 +00:00
shapely Allowing EnsoGL mouse to interact with more than 4096 sprites (#3369) 2022-03-30 04:50:55 +02:00
shortcuts The EnsoGL Component abstraction with special dropping behavior (#3322) 2022-04-04 15:55:55 +00:00
text Linting codebase 2022-03-10 05:32:33 +01:00
types Linting codebase 2022-03-10 05:32:33 +01:00
web Allowing EnsoGL mouse to interact with more than 4096 sprites (#3369) 2022-03-30 04:50:55 +02:00