Fix a layer's transform being reset when it's reordered within its same parent (#2624)

Fix layer transform reset when being reordered within the same group/parent
This commit is contained in:
Mohamed Osama 2025-04-30 01:48:08 +03:00 committed by GitHub
parent 80b8df8d42
commit 478ace3349
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 11 additions and 9 deletions

View File

@ -684,15 +684,17 @@ impl MessageHandler<DocumentMessage, DocumentMessageData<'_>> for DocumentMessag
insert_index: calculated_insert_index, insert_index: calculated_insert_index,
}); });
let layer_local_transform = self.network_interface.document_metadata().transform_to_viewport(layer_to_move); if layer_to_move.parent(self.metadata()) != Some(parent) {
let undo_transform = self.network_interface.document_metadata().transform_to_viewport(parent).inverse(); let layer_local_transform = self.network_interface.document_metadata().transform_to_viewport(layer_to_move);
let transform = undo_transform * layer_local_transform; let undo_transform = self.network_interface.document_metadata().transform_to_viewport(parent).inverse();
responses.add(GraphOperationMessage::TransformSet { let transform = undo_transform * layer_local_transform;
layer: layer_to_move, responses.add(GraphOperationMessage::TransformSet {
transform, layer: layer_to_move,
transform_in: TransformIn::Local, transform,
skip_rerender: false, transform_in: TransformIn::Local,
}); skip_rerender: false,
});
}
} }
responses.add(NodeGraphMessage::RunDocumentGraph); responses.add(NodeGraphMessage::RunDocumentGraph);