* Add blue layer origin cross overlay
* Apply suggestion from @Keavon
* Skip layers without local transforms
* Disable the Custom Pivot by default
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* add arrow shape feature in editor
Signed-off-by: krVatsal <kumarvatsal34@gmail.com>
* fix the arrow tool to show arrow in viewport space
Signed-off-by: krVatsal <kumarvatsal34@gmail.com>
* fix the direction of arrow and make the new arrow node
Signed-off-by: krVatsal <kumarvatsal34@gmail.com>
* updated arrow tool to hae start and end points
Signed-off-by: krVatsal <kumarvatsal34@gmail.com>
* fixed calculate point bug
Signed-off-by: krVatsal <kumarvatsal34@gmail.com>
* fixed some bugs of arrow positioning
Signed-off-by: krVatsal <kumarvatsal34@gmail.com>
* fixed formatting in whole codebase and added fill to arrow
Signed-off-by: krVatsal <kumarvatsal34@gmail.com>
* fix
---------
Signed-off-by: krVatsal <kumarvatsal34@gmail.com>
Co-authored-by: Timon <me@timon.zip>
* fix: handle PointId remapping when joining paths from different layers
When using Ctrl+J to join two points from different layers, the operation
failed because PointIds change during merge due to collision resolution.
The fix uses index-based point tracking instead of PointIds:
1. Before merge: Record the index of each selected point in its layer
2. Calculate post-merge indices using the point offset from layer1
3. After merge: Retrieve the actual PointIds at those indices
4. Create the connecting segment using the resolved PointIds
This works because Vector::concat() preserves point ordering during merge,
so we can use exact index arithmetic to find points after remapping.
Fixes#3519
* fix: use position-based lookup when joining paths from different layers
* fix cmd + g group case
* fix check for grouped folder
* add in the single layer inside a group case
* use ApplyPointDelta instead of creating a dummy segment
* Update editor/src/messages/tool/common_functionality/shape_editor.rs
Co-authored-by: James Lindsay <78500760+0HyperCube@users.noreply.github.com>
* Update editor/src/messages/tool/common_functionality/shape_editor.rs
Co-authored-by: James Lindsay <78500760+0HyperCube@users.noreply.github.com>
* encapsulate point connection logic in defer_connect_points_by_position
* reduce tolerance to 1e-6
* remove wrong comments
---------
Co-authored-by: James Lindsay <78500760+0HyperCube@users.noreply.github.com>
* Remove FontInput.svelte
* Move font picking to the backend
* Fix Text tool font choice style turning to "-" on font that doesn't support previous style
* ui scale preference
* cleanup
* add update ui scale message to SIDE_EFFECT_FREE_MESSAGES
* fix mac title bar height
* hide UI preference section on web
* set % as unit of ui scale
* gray background for viewport texture
* cust copy paste support
* connect clipboard read on web
* fix eyedropper bounds
* cleanup
* add missing char events for some named keys like enter
* okayish solution
should be improved at some point but for now it works well enough.
* do leftover renames
* better solution
* less weird resize frames
* move surface reconfiguration
* fix recent desktop mac breakages
* better looking resize on mac
* fix background color
* Fix blank screen on window initialization
* cleanup
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Restyle UserInputLabel and refactor its usages to have all input its data sent from Rust
* Replace the welcome screen quick buttons with ones sent by backend
* Add the ShortcutLabel widget to the backend
* Replace hints bar with a backend-controlled layout; show mouse icons in place of mouse labels
* only allow single instance
* more reliable CEF cache cleanup
* some cleanup
* fix lock file location
* add simple signal handling
* fix skew handles on desktop
* mac remove unused helpers
* Refactor the old menu bar plumbing to use standard TextButtons
* WIP: Fix Mac native menu bar
* WIP: fix desktop menu bar mac
* Refactor menu bar definitions to use the builder pattern
* WIP: fixup desktop
* cleanup
* fix linux
* Remove dead code that was failing to lint
---------
Co-authored-by: Timon Schelling <me@timon.zip>
* Replace the title attribute with custom FloatingMenu tooltips
* Separate tooltip labels and descriptions into two styled blocks
* Move keyboard shortcut tooltips to a separate section at the bottom
* Update shortcut key styling in tooltips and hints bar
* Fix .to_string()
- Add the 'Reset Transform' and 'Replace Transform' nodes
- Add the 'Count Points' and 'Index Points' nodes
- Make the 'Index Elements' node support negative indexing from the end
- Make the 'Flatten Vector' node's implementation reusable
- Fix crash displaying 0x0 raster image in the Data panel
- Fix the 'Points to Polyline' node not working on two-point objects
* Fix 'Mask' node missing Properties widget; fix crash with 'Brightness/Contrast Classic' node
Also clean up dead code and improve tooltip for the "-" Properties panel widget fallback.
* format type
---------
Co-authored-by: Adam <adamgerhant@gmail.com>
* add browser debug port env
* mac use option as alt
* fix cef texture double sRGB conversion by using cef-rs fork with fix
* fix keyboard input on mac
* add missing frontend messages
* fixup
* fix keyboard input mac
* dbg
* re implement keyboard mapping
Co-authored-by: csmoe <csmoe@msn.com>
* Fix double arrow keys
* try fix for non mac
* test
* Revert "test"
This reverts commit c7cde9c597e24ef7270ccc69c93a382939a2ce0f.
* fix mac
* some cleanup
* fix zoom in shortcut on mac introduced in #3377
* disable menu shortcut display
* fixup
* macos native menu bar
* fix nix build
* Add shortcut symbols to menu
* fix fmt
* fix vendoring
* cleanup intercept frontend message
* accept into editor message in queue function
* Cache calculation of bounding boxes with transforms
* Reuse bounding boxes across for the same rotation
* Cleanup code and add documentation
* Add tests
* Open document from cli and add some files to .gitignore
* Revert .gitignore
* Revert .gitignore
* Implement cli properly
* Add ui-accelerated-painting option
* Format code
* Revert changes in .vscode folder
* Don't use global variables for cli
* Apply suggested changes
* Make ready for merge
* Improve names
* remove comment
---------
Co-authored-by: Timon <me@timon.zip>
* One annoying debugging session later
Discovered that the editor handles frontend messages differently from other messages.
It requires all frontend messages to be fully processed before dispatching any resulting messages.
In the web frontend, this behavior happened implicitly because message dispatch is queued at the current end of the JavaScript execution queue.
For the desktop frontend, I added a vector to collect all responses until the entire batch of frontend messages is handled, and then dispatch them afterwards.
* Fix double click travel