From e1735ddf8433dd524ed887fc2dd94bfe5f63d909 Mon Sep 17 00:00:00 2001 From: zhiyuan <32867472+zhiyuang@users.noreply.github.com> Date: Tue, 6 Feb 2024 06:40:27 +0800 Subject: [PATCH] Fix Select tool's broken undo (#1597) Fix select tool undo --- .../portfolio/document/document_message_handler.rs | 2 +- editor/src/messages/tool/tool_message.rs | 1 + editor/src/messages/tool/tool_message_handler.rs | 13 ++++++++++--- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/editor/src/messages/portfolio/document/document_message_handler.rs b/editor/src/messages/portfolio/document/document_message_handler.rs index 989b70b4..5adf0e61 100644 --- a/editor/src/messages/portfolio/document/document_message_handler.rs +++ b/editor/src/messages/portfolio/document/document_message_handler.rs @@ -809,7 +809,7 @@ impl MessageHandler> for DocumentMessageHand } Undo => { self.undo_in_progress = true; - + responses.add(ToolMessage::PreUndo); responses.add(DocumentMessage::DocumentHistoryBackward); responses.add(OverlaysMessage::Draw); responses.add(DocumentMessage::UndoFinished); diff --git a/editor/src/messages/tool/tool_message.rs b/editor/src/messages/tool/tool_message.rs index 0e0ca8ea..b101d9d4 100644 --- a/editor/src/messages/tool/tool_message.rs +++ b/editor/src/messages/tool/tool_message.rs @@ -126,6 +126,7 @@ pub enum ToolMessage { }, DeactivateTools, InitTools, + PreUndo, Redo, RefreshToolOptions, ResetColors, diff --git a/editor/src/messages/tool/tool_message_handler.rs b/editor/src/messages/tool/tool_message_handler.rs index b305ae0f..31aa6bcf 100644 --- a/editor/src/messages/tool/tool_message_handler.rs +++ b/editor/src/messages/tool/tool_message_handler.rs @@ -177,6 +177,15 @@ impl MessageHandler { + let tool_data = &mut self.tool_state.tool_data; + match tool_data.active_tool_type { + ToolType::Pen => {} + _ => { + responses.add(BroadcastEvent::ToolAbort); + } + } + } ToolMessage::Redo => { let tool_data = &mut self.tool_state.tool_data; match tool_data.active_tool_type { @@ -236,9 +245,7 @@ impl MessageHandler { responses.add(PenToolMessage::Undo); } - _ => { - responses.add(BroadcastEvent::ToolAbort); - } + _ => {} } }