Skip to content

Commit

Permalink
Retain transforms of layers when transferred between transformed grou…
Browse files Browse the repository at this point in the history
…ps (#2212)

* Retain position of layers when transfered between artboards.

Fixes #861

* Apply same fixes to grouped layers
  • Loading branch information
mTvare6 authored Jan 23, 2025
1 parent 8505ed3 commit 37db9b1
Showing 1 changed file with 20 additions and 0 deletions.
20 changes: 20 additions & 0 deletions editor/src/messages/portfolio/document/document_message_handler.rs
Original file line number Diff line number Diff line change
Expand Up @@ -622,6 +622,16 @@ impl MessageHandler<DocumentMessage, DocumentMessageData<'_>> for DocumentMessag
parent,
insert_index: calculated_insert_index,
});

let layer_local_transform = self.network_interface.document_metadata().transform_to_viewport(layer_to_move);
let undo_transform = self.network_interface.document_metadata().transform_to_viewport(parent).inverse();
let transform = undo_transform * layer_local_transform;
responses.add(GraphOperationMessage::TransformSet {
layer: layer_to_move,
transform,
transform_in: TransformIn::Local,
skip_rerender: false,
});
}

responses.add(NodeGraphMessage::RunDocumentGraph);
Expand Down Expand Up @@ -1194,6 +1204,16 @@ impl MessageHandler<DocumentMessage, DocumentMessageData<'_>> for DocumentMessag
parent,
insert_index: folder_index,
});

let layer_local_transform = self.network_interface.document_metadata().transform_to_viewport(child);
let undo_transform = self.network_interface.document_metadata().transform_to_viewport(parent).inverse();
let transform = undo_transform * layer_local_transform;
responses.add(GraphOperationMessage::TransformSet {
layer: child,
transform,
transform_in: TransformIn::Local,
skip_rerender: false,
});
}

// Delete empty group folder
Expand Down

0 comments on commit 37db9b1

Please sign in to comment.