mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-17 07:18:04 +08:00
Make locked layer cannot be moved and disable bounding box
This commit is contained in:
@@ -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<Item = LayerNodeIdentifier> + '_ {
|
||||
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<Item = LayerNodeIdentifier> + '_ {
|
||||
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<Item = LayerNodeIdentifier> + '_ {
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user