From e068866048a68ebbfb194fe9c16fa19299ea24f7 Mon Sep 17 00:00:00 2001 From: Annonnymmousss Date: Thu, 15 Jan 2026 11:06:07 +0530 Subject: [PATCH 1/2] feat : Make the Text tool begin editing a selected layer by pressing Enter --- editor/src/messages/input_mapper/input_mappings.rs | 1 + editor/src/messages/tool/tool_messages/text_tool.rs | 10 ++++++++++ frontend/src/components/panels/Document.svelte | 1 + 3 files changed, 12 insertions(+) diff --git a/editor/src/messages/input_mapper/input_mappings.rs b/editor/src/messages/input_mapper/input_mappings.rs index 9e774b6c25..cd48e339da 100644 --- a/editor/src/messages/input_mapper/input_mappings.rs +++ b/editor/src/messages/input_mapper/input_mappings.rs @@ -165,6 +165,7 @@ pub fn input_mappings() -> Mapping { entry!(KeyUp(MouseLeft); action_dispatch=TextToolMessage::DragStop), entry!(KeyDown(MouseRight); action_dispatch=TextToolMessage::Abort), entry!(KeyDown(Escape); action_dispatch=TextToolMessage::Abort), + entry!(KeyDown(Enter); action_dispatch=TextToolMessage::BeginEditing), entry!(KeyDown(Enter); modifiers=[Accel], action_dispatch=TextToolMessage::Abort), // // GradientToolMessage diff --git a/editor/src/messages/tool/tool_messages/text_tool.rs b/editor/src/messages/tool/tool_messages/text_tool.rs index 1bd12b61ac..44b801588e 100644 --- a/editor/src/messages/tool/tool_messages/text_tool.rs +++ b/editor/src/messages/tool/tool_messages/text_tool.rs @@ -66,6 +66,7 @@ pub enum TextToolMessage { DragStart, DragStop, EditSelected, + BeginEditing, Interact, PointerMove { center: Key, lock_ratio: Key }, PointerOutsideViewport { center: Key, lock_ratio: Key }, @@ -307,6 +308,7 @@ impl<'a> MessageHandler> for Text match self.fsm_state { TextToolFsmState::Ready => actions!(TextToolMessageDiscriminant; DragStart, + BeginEditing, PointerOutsideViewport, PointerMove, ), @@ -652,6 +654,14 @@ impl Fsm for TextToolFsmState { state } + (TextToolFsmState::Ready, TextToolMessage::BeginEditing) => { + if let Some(layer) = can_edit_selected(document) { + tool_data.start_editing_layer(layer, TextToolFsmState::Ready, document, font_cache, responses); + return TextToolFsmState::Editing; + } + + TextToolFsmState::Ready + } (TextToolFsmState::Ready, TextToolMessage::DragStart) => { tool_data.resize.start(document, input, viewport); tool_data.cached_resize_bounds = [tool_data.resize.viewport_drag_start(document); 2]; diff --git a/frontend/src/components/panels/Document.svelte b/frontend/src/components/panels/Document.svelte index 79a2d6739b..32a494889b 100644 --- a/frontend/src/components/panels/Document.svelte +++ b/frontend/src/components/panels/Document.svelte @@ -374,6 +374,7 @@ const range = window.document.createRange(); range.selectNodeContents(textInput); + range.collapse(false); const selection = window.getSelection(); if (selection) { From f5adb730b4b533b0d0e44404e9b1188498ba0b9c Mon Sep 17 00:00:00 2001 From: Annonnymmousss Date: Mon, 19 Jan 2026 02:32:15 +0530 Subject: [PATCH 2/2] fix : /n addition in firebox --- frontend/src/components/panels/Document.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/components/panels/Document.svelte b/frontend/src/components/panels/Document.svelte index 32a494889b..3e2ee77889 100644 --- a/frontend/src/components/panels/Document.svelte +++ b/frontend/src/components/panels/Document.svelte @@ -342,7 +342,7 @@ // eslint-disable-next-line svelte/no-dom-manipulating if (data.text === "") textInput.textContent = ""; // eslint-disable-next-line svelte/no-dom-manipulating - else textInput.textContent = `${data.text}\n`; + else textInput.textContent = data.text; // Make it so `maxHeight` is a multiple of `lineHeight` const lineHeight = data.lineHeightRatio * data.fontSize;