From def4c9ae9eba8a43906ace05fc6b875d2a3581dd Mon Sep 17 00:00:00 2001 From: Dennis Kobert Date: Sun, 3 Aug 2025 10:22:33 +0200 Subject: [PATCH 1/2] Remove message deferral for text creation --- .../messages/tool/tool_messages/text_tool.rs | 32 ++++++++----------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/editor/src/messages/tool/tool_messages/text_tool.rs b/editor/src/messages/tool/tool_messages/text_tool.rs index 447a3ae258..1e2cc3f6ab 100644 --- a/editor/src/messages/tool/tool_messages/text_tool.rs +++ b/editor/src/messages/tool/tool_messages/text_tool.rs @@ -385,25 +385,19 @@ impl TextToolData { parent: document.new_layer_parent(true), insert_index: 0, }); - responses.add(DeferMessage::AfterGraphRun { - messages: vec![ - GraphOperationMessage::FillSet { - layer: self.layer, - fill: if editing_text.color.is_some() { - Fill::Solid(editing_text.color.unwrap().to_gamma_srgb()) - } else { - Fill::None - }, - } - .into(), - GraphOperationMessage::TransformSet { - layer: self.layer, - transform: editing_text.transform, - transform_in: TransformIn::Viewport, - skip_rerender: true, - } - .into(), - ], + responses.add(GraphOperationMessage::FillSet { + layer: self.layer, + fill: if editing_text.color.is_some() { + Fill::Solid(editing_text.color.unwrap().to_gamma_srgb()) + } else { + Fill::None + }, + }); + responses.add(GraphOperationMessage::TransformSet { + layer: self.layer, + transform: editing_text.transform, + transform_in: TransformIn::Viewport, + skip_rerender: true, }); self.editing_text = Some(editing_text); From 9aeeaeaaf8d59d3316cbe693922322a1a6c3464a Mon Sep 17 00:00:00 2001 From: Dennis Kobert Date: Sun, 3 Aug 2025 12:11:21 +0200 Subject: [PATCH 2/2] Restructure Trigger Navigation ready to not hijack the PTZ Update --- .../input_preprocessor_message_handler.rs | 9 +++++++++ .../portfolio/document/document_message_handler.rs | 14 -------------- 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/editor/src/messages/input_preprocessor/input_preprocessor_message_handler.rs b/editor/src/messages/input_preprocessor/input_preprocessor_message_handler.rs index 1a8962d974..0f4e77fb26 100644 --- a/editor/src/messages/input_preprocessor/input_preprocessor_message_handler.rs +++ b/editor/src/messages/input_preprocessor/input_preprocessor_message_handler.rs @@ -35,6 +35,15 @@ impl MessageHandler f responses.add(NavigationMessage::CanvasPan { delta: DVec2::ZERO }); responses.add(NodeGraphMessage::SetGridAlignedEdges); + // We have to wait until a node node graph has run and all messages from that execution have been processed. + responses.add(DeferMessage::AfterGraphRun { + messages: vec![ + DeferMessage::AfterGraphRun { + messages: vec![DeferMessage::TriggerNavigationReady.into()], + } + .into(), + ], + }); } } InputPreprocessorMessage::DoubleClick { editor_mouse_state, modifier_keys } => { diff --git a/editor/src/messages/portfolio/document/document_message_handler.rs b/editor/src/messages/portfolio/document/document_message_handler.rs index 5ddbb39439..1a296249c6 100644 --- a/editor/src/messages/portfolio/document/document_message_handler.rs +++ b/editor/src/messages/portfolio/document/document_message_handler.rs @@ -1436,20 +1436,6 @@ impl MessageHandler> for DocumentMes }, }) } - // Some parts of the editior (e.g. navigation messages) depend on these bounds to be present - let bounds = if self.graph_view_overlay_open { - self.network_interface.all_nodes_bounding_box(&self.breadcrumb_network_path).cloned() - } else { - self.network_interface.document_bounds_document_space(true) - }; - if bounds.is_some() { - responses.add(DeferMessage::TriggerNavigationReady); - } else { - // If we don't have bounds yet, we need wait until the node graph has run once more - responses.add(DeferMessage::AfterGraphRun { - messages: vec![DocumentMessage::PTZUpdate.into()], - }); - } } DocumentMessage::SelectionStepBack => { self.network_interface.selection_step_back(&self.selection_network_path);