mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-29 04:18:11 +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()))
|
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> + '_ {
|
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_locked(layer, metadata))
|
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> + '_ {
|
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;
|
tool_data.selected_layers_count = selected_layers_count;
|
||||||
|
|
||||||
// Outline selected layers
|
// 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));
|
overlay_context.outline(document.metadata().layer_outline(layer), document.metadata().transform_to_viewport(layer));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -405,13 +405,13 @@ impl Fsm for SelectToolFsmState {
|
|||||||
// Update bounds
|
// Update bounds
|
||||||
let transform = document
|
let transform = document
|
||||||
.selected_nodes
|
.selected_nodes
|
||||||
.selected_visible_layers(document.metadata())
|
.selected_visible_and_unlocked_layers(document.metadata())
|
||||||
.next()
|
.next()
|
||||||
.map(|layer| document.metadata().transform_to_viewport(layer));
|
.map(|layer| document.metadata().transform_to_viewport(layer));
|
||||||
let transform = transform.unwrap_or(DAffine2::IDENTITY);
|
let transform = transform.unwrap_or(DAffine2::IDENTITY);
|
||||||
let bounds = document
|
let bounds = document
|
||||||
.selected_nodes
|
.selected_nodes
|
||||||
.selected_visible_layers(document.metadata())
|
.selected_visible_and_unlocked_layers(document.metadata())
|
||||||
.filter_map(|layer| {
|
.filter_map(|layer| {
|
||||||
document
|
document
|
||||||
.metadata()
|
.metadata()
|
||||||
|
|||||||
Reference in New Issue
Block a user