Graphite/frontend/wasm
Haikal bf81a31ff9 Add layer locking feature (#1702)
* Add locking layer feature

* Update locked state data to adjust the refactor

* Make the locked layer cannot be selected using pointer and select all key

* Make locked layer cannot be moved and disable bounding box

* Add locked status selected node on CopyBuffer

* Make locked layer cannot be selected when selected all layers, and disabled GRS and nudging operation on locked layer

* Add refresh document metadata before update button on visible and locked

* Updated from master

* Fix icon logic on panel locked layer

* Make the child locked when the parent is locked, and the child cannot be unlocked if the parent is locked

* Revert "Make the child locked when the parent is locked, and the child cannot be unlocked if the parent is locked"

This reverts commit 7c93259bc2.

* Revert "Fix icon logic on panel locked layer"

This reverts commit 33939f2e84.

* Delete Make Lock button in the node graph top bar

* Add ToggleSelectedLocked to action_with_node_graph_open

* Fix parent and child locking behavior icon on panel

* Fix boolean operator on icon button locking layer

* Make bolean logic more readable in icon button locking layer

* Fix locking layer can be moved or resizing when selected with unlocking layer, disabled pivot widget on locking layer, disable all action on pivot point, alignment, flipping, and boolean operation for locking layer

* Fix axis align drag crash

---------

Co-authored-by: 0hypercube <0hypercube@gmail.com>
2024-04-03 16:08:26 -07:00
..
.cargo Add blit caching and blend modes to Brush tool (#1268) 2023-06-07 12:24:21 +02:00
src Add layer locking feature (#1702) 2024-04-03 16:08:26 -07:00
tests Add frontend file structure docs and some related cleanup 2022-05-23 19:13:51 -07:00
Cargo.toml Save work periodically to reduce loss from crashes (#1580) 2024-02-20 03:23:25 +00:00
README.md Add frontend file structure docs and some related cleanup 2022-05-23 19:13:51 -07:00

Overview of /frontend/wasm/

WASM wrapper API: src/editor_api.rs

Provides bindings for JS to call functions defined in this file, and for FrontendMessages to be sent from Rust back to JS in the form of a callback to the subscription router. This WASM wrapper crate, since it's written in Rust, is able to call into the Editor crate's codebase and send FrontendMessages back to JS.

WASM wrapper helper code: src/helpers.rs

Assorted function and struct definitions used in the WASM wrapper.

WASM wrapper initialization: src/lib.rs

Entry point for the Rust entire codebase in the WASM environment. Initializes the WASM module and persistent storage for editor and WASM wrapper instances.

WASM wrapper tests: tests/

We currently have no WASM wrapper tests, but this is where they would go.