* 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> |
||
|---|---|---|
| .. | ||
| src | ||
| Cargo.toml | ||
| build.rs | ||