Adam
44446e4ea5
Vertical wire path in progress
2026-01-15 23:41:56 -08:00
Adam
075e5d67ae
Improve data type organization
2026-01-15 23:41:48 -08:00
Adam Gerhant
c13647aef4
Fix regression where tooltip node descriptions in the graph stopped showing ( #3639 )
...
* Fix tooltips
* Convert DefinitionIdentifier to string in JavaScript
* Code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2026-01-15 23:30:16 -08:00
Adam Gerhant
c60ddcf875
Fix the Text node's Max Width/Height parameters with OptionalF64 losing the value when unticked ( #3643 )
...
* WIP
* Fix widget
* Fix migration
* Remove OptionalF64
* Custom attributes for optional f64 widget
* Code review
* Move comments to another PR
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2026-01-16 06:13:32 +00:00
Timon
73682b482b
Desktop: Implement pointer lock for NumberInput ( #3638 )
...
* Desktop: Implement pointer lock for NumberInput
* add shift and ctrl modifiers
* fixup
2026-01-15 11:27:31 +00:00
Timon
6616d1bfb1
Desktop: Add commit info to binaries build with Nix ( #3635 )
2026-01-15 10:34:01 +00:00
James Lindsay
c46060db44
Add a Select tool overlay for the layer origin ( #3471 )
...
* 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 >
2026-01-14 01:50:03 -08:00
Adam Gerhant
a6052c5819
Replace node definition string-based lookups with DefinitionIdentifier instances ( #3451 )
...
* create definition identifier and integrate it
* Bug fixes and code review
* formatting
* Fix migrations
* Fix remove handles migration
* formatting
* Fix test
* Fix tests 2
* fix deserialization
* Code review
* Small fixes
* Consolidate 'Morph' node migrations
* Add old SamplePointsNode name to migrations list
* Fix tests
* Unrelated small fix
* Fix migration crashes
* Fix tests
* Final code review
* fmt
* Add metadata
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2026-01-12 23:09:43 -08:00
Vatsal Kumar
4fea2b0fe7
Add an arrow to the Shape tool ( #3343 )
...
* 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 >
2026-01-12 00:58:28 +00:00
Ayush Amawate
5dd11bf138
Ignore out-of-range mouse button values using from_bits_truncate ( #3541 )
...
* fix: ignore out-of-range mouse button values using from_bits_truncate
* Apply suggestion from @TrueDoctor
* Fix formatting
---------
Co-authored-by: Dennis Kobert <dennis@kobert.dev >
2026-01-11 22:31:15 +00:00
Ayush Amawate
33e3a88458
Fix joining paths from different layers with Ctrl+J fails ( #3534 )
...
* 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 >
2026-01-11 12:56:48 +00:00
Ayush Amawate
d98f19bf4a
Add artboard name to the export when exporting a single artboard ( #3613 )
...
* add artboard name to the export
* change file name to {docname}-{artboard} for more than 1 arboard
* add switch statement instead of if else
2026-01-11 13:28:19 +01:00
Keavon Chambers
1b91198b28
Fix 'Regular Polygon' and 'Star' shapes incorrectly having cubic handles, not linear ( #3606 )
...
Fix shape nodes creating cubic-curved polylines
2026-01-06 20:58:08 -08:00
Ayush Amawate
f808e6d37c
Fix freehand tool showing all anchors in overlay ( #3585 )
...
Use anchor_endpoints() instead of anchor_points() in path_endpoint_overlays() to only show overlays at true path endpoints, not intermediate points
2026-01-06 20:04:38 +01:00
Ayush Amawate
fcf32b3cff
Fix PNG exports being off by 1 pixel ( #3582 )
...
use round() instead of as_uvec2() while exporting
2026-01-06 13:50:32 +00:00
Keavon Chambers
02e3293e72
Prep for the RC2 release of the desktop app
2026-01-06 04:38:52 +01:00
Keavon Chambers
2fa958aa79
Remove generics from the user-facing name for the Vector data type
2026-01-01 21:26:02 -08:00
Keavon Chambers
fa45efa9e2
New node: Pointer Position ( #3535 )
...
* New node: Pointer Position
* Fix test
2025-12-27 16:02:23 -08:00
Jatin Bharti
0b38beb79b
Fix Pen tool anchor point overlays disappearing forever after viewing the node graph ( #3523 )
...
* Promote vector meshes from experimental by removing it from preferences
* fix : pen tool anchor point issue with node graph open/close
* fix : Memory allocation by removing .collct()
* fix : remove the reduntant if condition
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
Co-authored-by: Adesh Gupta <148623820+4adex@users.noreply.github.com >
2025-12-25 05:43:26 -08:00
Keavon Chambers
9f25c50ca1
Prep for the RC1 release of the desktop app
2025-12-24 22:45:08 -08:00
Keavon Chambers
63217feac6
Organize the categories of widget component props
2025-12-23 21:23:13 -08:00
Keavon Chambers
2f880fa035
Fix missing artboard layer icon
2025-12-23 14:43:13 -08:00
Keavon Chambers
9d26c040e9
Box the widget: Widget field of WidgetInstance ( #3506 )
...
Box the `pub widget: Box<Widget>` field of `WidgetInstance`
2025-12-22 04:18:33 -08:00
Keavon Chambers
64ed21f694
Clean up code with better naming
2025-12-21 23:35:00 -08:00
Keavon Chambers
123108c813
Promote vector meshes from experimental by removing it from preferences
2025-12-21 19:33:42 -08:00
Jatin Bharti
d16fd46399
Fix disabled state of Layer > Make Path Editable menu action getting out of sync ( #3497 )
...
* fix : sync the make path editable option
* fix : control the call with state
* fix : fix the call
* fix : redundancy
* fix : fmt
2025-12-20 17:06:34 -08:00
Keavon Chambers
0a5e65bc9d
Fix the Brush tool being accessible while disabled in preferences
2025-12-20 03:48:41 -08:00
Keavon Chambers
f1e8ebefc5
Improve tooltip docs with Markdown styling and refined math node explanations ( #3488 )
2025-12-20 01:05:15 -08:00
Keavon Chambers
2c21e1a90b
Desktop: Clean up the UI scale setting in the Preferences dialog
2025-12-20 00:20:50 -08:00
Keavon Chambers
2d6d054359
Make font selection show a live preview on hover; move its code to the backend ( #3487 )
...
* 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
2025-12-19 22:17:28 -08:00
Adam Gerhant
6733a24e47
Use more specific node input indexing when displaying invalid input errors ( #3415 )
...
* Reduce displayed invalid inputs
* Correct error offset for convert node
* Apply suggestions from code review
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-12-18 10:48:25 +00:00
Timon
b97978e91d
Fix regression where Ctrl+X is copying not cutting ( #3486 )
...
fix nodegraph cut regression
2025-12-18 00:40:54 -08:00
Timon
b4fc3d0580
Desktop: Fix pivot and axis constraint overlays ( #3463 )
...
* fix pivot gizmo native dowel_pin overlay
* fix native snapping overlay
2025-12-15 14:53:43 +00:00
Timon
820865389c
Desktop: UI scale preference ( #3475 )
...
* 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
2025-12-15 14:11:43 +00:00
Timon
7532bd7260
Desktop: Hide menu bar in fullscreen mode on Mac ( #3464 )
...
hide menu bar in fullscreen mode on mac
2025-12-12 13:09:31 +00:00
Timon
6d852f11af
Desktop: Text clipboard support ( #3461 )
...
* 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
2025-12-12 00:16:35 +00:00
Keavon Chambers
d6c06da878
Move the MenuBarMessage up from within PortfolioMessage to the root Message ( #3459 )
...
Move the MenuBarMessage up from within PortfolioMessage
2025-12-08 20:49:35 -08:00
Dennis Kobert
532dc30028
Fix checkboxes by using deterministic widget IDs instead of random ones to make the diffing easier ( #3457 )
...
* Move diffing to trait
* Add deterministic widget ids
* Cleanup
2025-12-08 12:30:29 +00:00
Keavon Chambers
90c91db550
Disable the Brush tool by default and add it to preferences under experimental
2025-12-08 04:02:50 -08:00
Adam Gerhant
bba771bd08
Add mitigation for inability to connect graph import directly to export by auto-inserting a Passthrough node ( #3449 )
...
insert passthrough
2025-12-07 19:19:55 +00:00
Adam Gerhant
9fc98cf03f
Desktop: Remove web_sys text measuring to fix node graph layer widths ( #3455 )
...
* Remove web_sys text measuring
* Improve export
* Fix top of layer stack
2025-12-07 12:11:42 +00:00
Adam Gerhant
3926337b44
Fix traversal when deleting nodes ( #3358 )
...
* Fix deletion
* Fix traversal over primary
2025-12-07 03:41:23 -08:00
Keavon Chambers
fb0fab0622
Update links from graphite.rs to graphite.art
2025-12-06 18:10:27 -08:00
Timon
2e4481880e
Desktop: Fix missing resize events causing all-gray window on Mac after launch ( #3445 )
...
* 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 >
2025-12-06 23:11:47 +00:00
Keavon Chambers
5b472a64b2
Remove the "coming soon" dialog and hide not-yet-ready features/tools
2025-12-05 04:17:44 -08:00
Keavon Chambers
74d9c911bd
Fix ShortcutLabel drawing of consecutive key labels
2025-12-04 22:04:37 -08:00
Yuxiang Huang
8ca546c164
Fix using Esc to abort box selection and wire dragging causing the graph to close ( #3409 )
...
* Implement proper node graph interaction aborting when pressing Escape
* Fixes
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com >
2025-12-05 01:42:00 +00:00
Keavon Chambers
2ee8e56cef
Fix sending platform-specific shortcut keys to frontend before editor is initialized with the platform set
2025-12-04 15:35:30 -08:00
Keavon Chambers
783ea0b437
Unwrap the Layout enum to replace it with the WidgetLayout struct now called Layout ( #3448 )
2025-12-04 15:24:40 -08:00
Keavon Chambers
3c4ad8b720
Refactor the WidgetLayout struct to remove SubLayout and avoid sending LayoutTarget to frontend
2025-12-04 02:44:54 -08:00