From 248383222759bf7b02a15a129e17367b9c1d3877 Mon Sep 17 00:00:00 2001 From: Timon Date: Thu, 11 Sep 2025 10:58:38 -0700 Subject: [PATCH] Mark new documents as saved (#3165) * clean up new document message handling * Mark new documents as saved --- .../new_document_dialog_message_handler.rs | 2 ++ .../portfolio/document/document_message.rs | 1 + .../portfolio/document/document_message_handler.rs | 4 ++++ .../portfolio/portfolio_message_handler.rs | 14 ++++++-------- 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/editor/src/messages/dialog/new_document_dialog/new_document_dialog_message_handler.rs b/editor/src/messages/dialog/new_document_dialog/new_document_dialog_message_handler.rs index 5d3ae881f..45fb6772d 100644 --- a/editor/src/messages/dialog/new_document_dialog/new_document_dialog_message_handler.rs +++ b/editor/src/messages/dialog/new_document_dialog/new_document_dialog_message_handler.rs @@ -45,6 +45,8 @@ impl<'a> MessageHandler, }, + MarkAsSaved, SelectParentLayer, SelectAllLayers, SelectedLayersLower, diff --git a/editor/src/messages/portfolio/document/document_message_handler.rs b/editor/src/messages/portfolio/document/document_message_handler.rs index d03fb818d..c25c6f5ad 100644 --- a/editor/src/messages/portfolio/document/document_message_handler.rs +++ b/editor/src/messages/portfolio/document/document_message_handler.rs @@ -1062,6 +1062,10 @@ impl MessageHandler> for DocumentMes responses.add(NodeGraphMessage::UpdateNewNodeGraph); } } + DocumentMessage::MarkAsSaved => { + self.set_save_state(true); + responses.add(PortfolioMessage::UpdateOpenDocumentsList); + } DocumentMessage::SelectParentLayer => { let selected_nodes = self.network_interface.selected_nodes(); let selected_layers = selected_nodes.selected_layers(self.metadata()); diff --git a/editor/src/messages/portfolio/portfolio_message_handler.rs b/editor/src/messages/portfolio/portfolio_message_handler.rs index c83346c88..0e7143a04 100644 --- a/editor/src/messages/portfolio/portfolio_message_handler.rs +++ b/editor/src/messages/portfolio/portfolio_message_handler.rs @@ -390,19 +390,17 @@ impl MessageHandler> for Portfolio PortfolioMessage::NewDocumentWithName { name } => { let mut new_document = DocumentMessageHandler::default(); new_document.name = name; - let mut new_responses = VecDeque::new(); - new_responses.add(DocumentMessage::PTZUpdate); + + responses.add(DocumentMessage::PTZUpdate); let document_id = DocumentId(generate_uuid()); if self.active_document().is_some() { - new_responses.add(EventMessage::ToolAbort); - new_responses.add(NavigationMessage::CanvasPan { delta: (0., 0.).into() }); + responses.add(EventMessage::ToolAbort); + responses.add(NavigationMessage::CanvasPan { delta: (0., 0.).into() }); } - self.load_document(new_document, document_id, self.layers_panel_open, &mut new_responses, false); - new_responses.add(PortfolioMessage::SelectDocument { document_id }); - new_responses.extend(responses.drain(..)); - *responses = new_responses; + self.load_document(new_document, document_id, self.layers_panel_open, responses, false); + responses.add(PortfolioMessage::SelectDocument { document_id }); } PortfolioMessage::NextDocument => { if let Some(active_document_id) = self.active_document_id {