diff --git a/editor/src/communication/dispatcher.rs b/editor/src/communication/dispatcher.rs index 9a7b8601..6050625f 100644 --- a/editor/src/communication/dispatcher.rs +++ b/editor/src/communication/dispatcher.rs @@ -30,6 +30,7 @@ struct DispatcherMessageHandlers { // In addition, these messages do not change any state in the backend (aside from caches). const SIDE_EFFECT_FREE_MESSAGES: &[MessageDiscriminant] = &[ MessageDiscriminant::Portfolio(PortfolioMessageDiscriminant::Document(DocumentMessageDiscriminant::RenderDocument)), + MessageDiscriminant::Portfolio(PortfolioMessageDiscriminant::Document(DocumentMessageDiscriminant::Overlays(OverlaysMessageDiscriminant::Rerender))), MessageDiscriminant::Portfolio(PortfolioMessageDiscriminant::Document(DocumentMessageDiscriminant::FolderChanged)), MessageDiscriminant::Frontend(FrontendMessageDiscriminant::UpdateDocumentLayer), MessageDiscriminant::Frontend(FrontendMessageDiscriminant::DisplayDocumentLayerTreeStructure), diff --git a/editor/src/document/overlays_message_handler.rs b/editor/src/document/overlays_message_handler.rs index 4451eaef..c26d0e0f 100644 --- a/editor/src/document/overlays_message_handler.rs +++ b/editor/src/document/overlays_message_handler.rs @@ -18,26 +18,27 @@ impl MessageHandler for OverlaysMessageHandler { // Sub-messages #[remain::unsorted] DispatchOperation(operation) => match self.overlays_graphene_document.handle_operation(&operation) { - Ok(_) => (), + Ok(_) => responses.push_back(OverlaysMessage::Rerender.into()), Err(e) => log::error!("OverlaysError: {:?}", e), }, // Messages ClearAllOverlays => todo!(), - Rerender => (), - } - - // Render overlays - responses.push_back( - FrontendMessage::UpdateDocumentOverlays { - svg: if overlays_visible { - self.overlays_graphene_document.render_root(ViewMode::Normal) - } else { - String::from("") - }, + Rerender => + // Render overlays + { + responses.push_back( + FrontendMessage::UpdateDocumentOverlays { + svg: if overlays_visible { + self.overlays_graphene_document.render_root(ViewMode::Normal) + } else { + String::from("") + }, + } + .into(), + ) } - .into(), - ); + } } fn actions(&self) -> ActionList {