Fix Layers panel UI not updating on selection change and expand/collapsing (#1847)

Also fixes a panic on empty layer.

* Fix layer properties updete on layer change + fix panic on empty layer

* Fix Layers panel expand/collapse

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
This commit is contained in:
Dennis Kobert 2024-07-24 01:44:57 +02:00 committed by GitHub
parent fad289804a
commit ab8748627d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 6 additions and 2 deletions

View file

@ -46,7 +46,7 @@ const DEBUG_MESSAGE_BLOCK_LIST: &[MessageDiscriminant] = &[
MessageDiscriminant::InputPreprocessor(InputPreprocessorMessageDiscriminant::FrameTimeAdvance),
];
// TODO: Find a way to combine these with the list above. We use strings for now since these are the standard variant names used by multiple messages. But having these also type-checked would be best.
const DEBUG_MESSAGE_ENDING_BLOCK_LIST: &[&str] = &["PointerMove", "PointerOutsideViewport"];
const DEBUG_MESSAGE_ENDING_BLOCK_LIST: &[&str] = &["PointerMove", "PointerOutsideViewport", "Overlays", "Draw"];
impl Dispatcher {
pub fn new() -> Self {

View file

@ -1015,7 +1015,7 @@ impl MessageHandler<DocumentMessage, DocumentMessageData<'_>> for DocumentMessag
} else {
self.collapsed.0.push(layer);
}
responses.add(NodeGraphMessage::RunDocumentGraph);
responses.add(NodeGraphMessage::SendGraph);
}
DocumentMessage::ToggleGridVisibility => {
self.snapping_state.grid_snapping = !self.snapping_state.grid_snapping;

View file

@ -100,6 +100,7 @@ impl<'a> MessageHandler<NodeGraphMessage, NodeGraphHandlerData<'a>> for NodeGrap
});
}
responses.add(ArtboardToolMessage::UpdateSelectedArtboard);
responses.add(DocumentMessage::DocumentStructureChanged);
responses.add(NodeGraphMessage::RunDocumentGraph);
}
NodeGraphMessage::ConnectNodesByWire {

View file

@ -441,6 +441,9 @@ impl Fsm for SelectToolFsmState {
.next()
.map(|layer| document.metadata().transform_to_viewport(layer));
let transform = transform.unwrap_or(DAffine2::IDENTITY);
if transform.matrix2.determinant() == 0. {
return self;
}
let bounds = document
.selected_nodes
.selected_visible_and_unlocked_layers(document.metadata())