From dcce5194265e34c41f23de5ae1c552bfc32ddf01 Mon Sep 17 00:00:00 2001 From: milan-sedivy <59771021+milan-sedivy@users.noreply.github.com> Date: Mon, 11 Mar 2024 09:46:38 +0200 Subject: [PATCH] Fix switch to/from Artboard tool firing an undo (#1668) * Fix tool switch causing abort of ArtboardTool transaction when it shouldn't * Add cancellation keyhints * Unify the cancel keyhints with other tools * Consolidate hints --------- Co-authored-by: Keavon Chambers --- .../messages/tool/tool_messages/artboard_tool.rs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/editor/src/messages/tool/tool_messages/artboard_tool.rs b/editor/src/messages/tool/tool_messages/artboard_tool.rs index 83de09e1..e687cde2 100644 --- a/editor/src/messages/tool/tool_messages/artboard_tool.rs +++ b/editor/src/messages/tool/tool_messages/artboard_tool.rs @@ -404,7 +404,7 @@ impl Fsm for ArtboardToolFsmState { ArtboardToolFsmState::Ready } - (_, ArtboardToolMessage::Abort) => { + (ArtboardToolFsmState::Dragging | ArtboardToolFsmState::Drawing | ArtboardToolFsmState::ResizingBounds, ArtboardToolMessage::Abort) => { responses.add(DocumentMessage::AbortTransaction); // ArtboardTool currently doesn't implement snapping @@ -425,10 +425,14 @@ impl Fsm for ArtboardToolFsmState { HintGroup(vec![HintInfo::mouse(MouseMotion::LmbDrag, "Move Artboard")]), HintGroup(vec![HintInfo::keys([Key::Backspace], "Delete Artboard")]), ]), - ArtboardToolFsmState::Dragging => HintData(vec![HintGroup(vec![HintInfo::keys([Key::Shift], "Constrain to Axis")])]), - ArtboardToolFsmState::Drawing | ArtboardToolFsmState::ResizingBounds => { - HintData(vec![HintGroup(vec![HintInfo::keys([Key::Shift], "Constrain Square"), HintInfo::keys([Key::Alt], "From Center")])]) - } + ArtboardToolFsmState::Dragging => HintData(vec![ + HintGroup(vec![HintInfo::mouse(MouseMotion::Rmb, ""), HintInfo::keys([Key::Escape], "Cancel").prepend_slash()]), + HintGroup(vec![HintInfo::keys([Key::Shift], "Constrain to Axis")]), + ]), + ArtboardToolFsmState::Drawing | ArtboardToolFsmState::ResizingBounds => HintData(vec![ + HintGroup(vec![HintInfo::mouse(MouseMotion::Rmb, ""), HintInfo::keys([Key::Escape], "Cancel").prepend_slash()]), + HintGroup(vec![HintInfo::keys([Key::Shift], "Constrain Square"), HintInfo::keys([Key::Alt], "From Center")]), + ]), }; responses.add(FrontendMessage::UpdateInputHints { hint_data });