New overlay system that reimplements how overlays are drawn (#418)

* New overlay system that reimplements how overlays are drawn

* Fix overlay message declaration

* Fix small mistake

* WIP (broken) changes to plumb the overlay document

* Fix confusion over messaging system architecture

* Removed log

* Overlay system working

* (broken) WIP overlay association

* Finish the overlay system (except test failure)

* Change back IDs in test

* Fixed test, but stilled fails due to revealed real problem with layer reordering selection

* Disable broken test that has a bug in issue #444

Co-authored-by: Dennis <dennis@kobert.dev>
Co-authored-by: otdavies <oliver@psyfer.io>
This commit is contained in:
Keavon Chambers
2021-12-30 09:48:39 -08:00
parent 1a70667f63
commit eb96eafe60
22 changed files with 416 additions and 313 deletions

View File

@@ -86,7 +86,7 @@ impl<'a> Selected<'a> {
);
}
self.responses.push_back(ToolMessage::SelectedLayersChanged.into());
self.responses.push_back(ToolMessage::DocumentIsDirty.into());
}
}
@@ -423,7 +423,7 @@ impl MessageHandler<TransformLayerMessage, (&mut HashMap<Vec<LayerId>, LayerData
self.operation = Operation::Grabbing(Default::default());
responses.push_back(ToolMessage::SelectedLayersChanged.into());
responses.push_back(ToolMessage::DocumentIsDirty.into());
}
BeginRotate => {
if let Operation::Rotating(_) = self.operation {
@@ -434,7 +434,7 @@ impl MessageHandler<TransformLayerMessage, (&mut HashMap<Vec<LayerId>, LayerData
self.operation = Operation::Rotating(Default::default());
responses.push_back(ToolMessage::SelectedLayersChanged.into());
responses.push_back(ToolMessage::DocumentIsDirty.into());
}
BeginScale => {
if let Operation::Scaling(_) = self.operation {
@@ -446,7 +446,7 @@ impl MessageHandler<TransformLayerMessage, (&mut HashMap<Vec<LayerId>, LayerData
self.operation = Operation::Scaling(Default::default());
self.operation.apply_operation(&mut selected, self.snap);
responses.push_back(ToolMessage::SelectedLayersChanged.into());
responses.push_back(ToolMessage::DocumentIsDirty.into());
}
CancelOperation => {
selected.revert_operation();
@@ -456,7 +456,7 @@ impl MessageHandler<TransformLayerMessage, (&mut HashMap<Vec<LayerId>, LayerData
self.operation = Operation::None;
responses.push_back(ToolMessage::SelectedLayersChanged.into());
responses.push_back(ToolMessage::DocumentIsDirty.into());
}
ApplyOperation => {
self.original_transforms.clear();
@@ -464,7 +464,7 @@ impl MessageHandler<TransformLayerMessage, (&mut HashMap<Vec<LayerId>, LayerData
self.operation = Operation::None;
responses.push_back(ToolMessage::SelectedLayersChanged.into());
responses.push_back(ToolMessage::DocumentIsDirty.into());
}
MouseMove { slow_key, snap_key } => {
self.slow = ipp.keyboard.get(slow_key as usize);