From 50b67bf6f664cc425d63098f208cb153663bdfb5 Mon Sep 17 00:00:00 2001 From: Dhruv Date: Thu, 3 Aug 2023 21:38:49 +0530 Subject: [PATCH] Fix Text Tool Overwriting Existing Text on Editing Text Layer (#1356) fix: text edit overwriting existing text --- .../node_graph_message_handler/document_node_types.rs | 6 +++--- editor/src/messages/tool/tool_messages/text_tool.rs | 2 +- node-graph/gcore/src/text.rs | 2 +- node-graph/interpreted-executor/src/node_registry.rs | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/editor/src/messages/portfolio/document/node_graph/node_graph_message_handler/document_node_types.rs b/editor/src/messages/portfolio/document/node_graph/node_graph_message_handler/document_node_types.rs index f0f833832..3fe71104a 100644 --- a/editor/src/messages/portfolio/document/node_graph/node_graph_message_handler/document_node_types.rs +++ b/editor/src/messages/portfolio/document/node_graph/node_graph_message_handler/document_node_types.rs @@ -1680,7 +1680,7 @@ fn static_nodes() -> Vec { DocumentInputType::none(), DocumentInputType::value("Text", TaggedValue::String("hello world".to_string()), false), DocumentInputType::value("Font", TaggedValue::Font(Font::new(DEFAULT_FONT_FAMILY.into(), DEFAULT_FONT_STYLE.into())), false), - DocumentInputType::value("Size", TaggedValue::F32(24.), false), + DocumentInputType::value("Size", TaggedValue::F64(24.), false), ], outputs: vec![DocumentOutputType::new("Vector", FrontendGraphDataType::Subpath)], properties: node_properties::node_section_font, @@ -2020,7 +2020,7 @@ pub fn new_vector_network(subpaths: Vec NodeNetwork { +pub fn new_text_network(text: String, font: Font, size: f64) -> NodeNetwork { let text_generator = resolve_document_node_type("Text").expect("Text node does not exist"); let transform = resolve_document_node_type("Transform").expect("Transform node does not exist"); let fill = resolve_document_node_type("Fill").expect("Fill node does not exist"); @@ -2037,7 +2037,7 @@ pub fn new_text_network(text: String, font: Font, size: f32) -> NodeNetwork { NodeInput::Network(concrete!(WasmEditorApi)), NodeInput::value(TaggedValue::String(text), false), NodeInput::value(TaggedValue::Font(font), false), - NodeInput::value(TaggedValue::F32(size), false), + NodeInput::value(TaggedValue::F64(size), false), ], DocumentNodeMetadata::position((0, 4)), ), diff --git a/editor/src/messages/tool/tool_messages/text_tool.rs b/editor/src/messages/tool/tool_messages/text_tool.rs index 5d238cd69..1315ebf66 100644 --- a/editor/src/messages/tool/tool_messages/text_tool.rs +++ b/editor/src/messages/tool/tool_messages/text_tool.rs @@ -330,7 +330,7 @@ impl TextToolData { else if let Some(editing_text) = self.editing_text.as_ref().filter(|_| state == TextToolFsmState::Ready) { responses.add(DocumentMessage::StartTransaction); - let network = new_text_network(String::new(), editing_text.font.clone(), editing_text.font_size as f32); + let network = new_text_network(String::new(), editing_text.font.clone(), editing_text.font_size); responses.add(Operation::AddFrame { path: self.layer_path.clone(), diff --git a/node-graph/gcore/src/text.rs b/node-graph/gcore/src/text.rs index 01f21689c..40f6bfb78 100644 --- a/node-graph/gcore/src/text.rs +++ b/node-graph/gcore/src/text.rs @@ -15,7 +15,7 @@ pub struct TextGenerator { } #[node_fn(TextGenerator)] -fn generate_text<'a: 'input, T>(editor: EditorApi<'a, T>, text: String, font_name: Font, font_size: f32) -> crate::vector::VectorData { +fn generate_text<'a: 'input, T>(editor: EditorApi<'a, T>, text: String, font_name: Font, font_size: f64) -> crate::vector::VectorData { let buzz_face = editor.font_cache.get(&font_name).map(|data| load_face(data)); crate::vector::VectorData::from_subpaths(to_path(&text, buzz_face, font_size as f64, None)) } diff --git a/node-graph/interpreted-executor/src/node_registry.rs b/node-graph/interpreted-executor/src/node_registry.rs index 33ad5283e..58e8a3a96 100644 --- a/node-graph/interpreted-executor/src/node_registry.rs +++ b/node-graph/interpreted-executor/src/node_registry.rs @@ -532,7 +532,7 @@ fn node_registry() -> HashMap>, params: [Vec] ), - register_node!(graphene_core::text::TextGenerator<_, _, _>, input: WasmEditorApi, params: [String, graphene_core::text::Font, f32]), + register_node!(graphene_core::text::TextGenerator<_, _, _>, input: WasmEditorApi, params: [String, graphene_core::text::Font, f64]), register_node!(graphene_std::brush::VectorPointsNode, input: VectorData, params: []), register_node!(graphene_core::ExtractImageFrame, input: WasmEditorApi, params: []), register_node!(graphene_core::ConstructLayerNode<_, _, _, _, _, _, _>, input: graphene_core::vector::VectorData, params: [String, BlendMode, f32, bool, bool, bool, graphene_core::GraphicGroup]),