From f410efb8a832d0931486bbccb6f7180dd474e9ff Mon Sep 17 00:00:00 2001 From: James Lindsay <78500760+0HyperCube@users.noreply.github.com> Date: Tue, 11 Feb 2025 10:45:08 +0000 Subject: [PATCH] Fix crash when ungrouping a direct child of the root in debug mode (#2241) Fix crash when ungrouping a child of the root in debug mode --- .../portfolio/document/document_message_handler.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/editor/src/messages/portfolio/document/document_message_handler.rs b/editor/src/messages/portfolio/document/document_message_handler.rs index efcb5201..f60d19be 100644 --- a/editor/src/messages/portfolio/document/document_message_handler.rs +++ b/editor/src/messages/portfolio/document/document_message_handler.rs @@ -1208,9 +1208,15 @@ impl MessageHandler> for DocumentMessag 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; + let metadata = self.network_interface.document_metadata(); + let layer_local_transform = metadata.transform_to_viewport(child); + let undo_parent_transform = if parent == LayerNodeIdentifier::ROOT_PARENT { + // This is functionally the same as transform_to_viewport for the root, however to_node cannot run on the root in debug mode. + metadata.document_to_viewport.inverse() + } else { + metadata.transform_to_viewport(parent).inverse() + }; + let transform = undo_parent_transform * layer_local_transform; responses.add(GraphOperationMessage::TransformSet { layer: child, transform,