diff --git a/editor/src/messages/portfolio/document/utility_types/nodes.rs b/editor/src/messages/portfolio/document/utility_types/nodes.rs index aaa879a2f5..8c6d8d48b9 100644 --- a/editor/src/messages/portfolio/document/utility_types/nodes.rs +++ b/editor/src/messages/portfolio/document/utility_types/nodes.rs @@ -69,8 +69,9 @@ impl SelectedNodes { layer.ancestors(metadata).any(|layer| metadata.node_is_locked(layer.to_node())) } - pub fn selected_locked_layers<'a>(&'a self, metadata: &'a DocumentMetadata) -> impl Iterator + '_ { - self.selected_layers(metadata).filter(move |&layer| self.layer_locked(layer, metadata)) + pub fn selected_visible_and_unlocked_layers<'a>(&'a self, metadata: &'a DocumentMetadata) -> impl Iterator + '_ { + self.selected_layers(metadata) + .filter(move |&layer| self.layer_visible(layer, metadata) && !self.layer_locked(layer, metadata)) } pub fn selected_layers<'a>(&'a self, metadata: &'a DocumentMetadata) -> impl Iterator + '_ { diff --git a/editor/src/messages/tool/tool_messages/select_tool.rs b/editor/src/messages/tool/tool_messages/select_tool.rs index 5894dd04a4..b6d32b2a71 100644 --- a/editor/src/messages/tool/tool_messages/select_tool.rs +++ b/editor/src/messages/tool/tool_messages/select_tool.rs @@ -391,7 +391,7 @@ impl Fsm for SelectToolFsmState { tool_data.selected_layers_count = selected_layers_count; // Outline selected layers - for layer in document.selected_nodes.selected_visible_layers(document.metadata()) { + for layer in document.selected_nodes.selected_visible_and_unlocked_layers(document.metadata()) { overlay_context.outline(document.metadata().layer_outline(layer), document.metadata().transform_to_viewport(layer)); } @@ -405,13 +405,13 @@ impl Fsm for SelectToolFsmState { // Update bounds let transform = document .selected_nodes - .selected_visible_layers(document.metadata()) + .selected_visible_and_unlocked_layers(document.metadata()) .next() .map(|layer| document.metadata().transform_to_viewport(layer)); let transform = transform.unwrap_or(DAffine2::IDENTITY); let bounds = document .selected_nodes - .selected_visible_layers(document.metadata()) + .selected_visible_and_unlocked_layers(document.metadata()) .filter_map(|layer| { document .metadata()