mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-10-02 10:58:11 +08:00
Fix cancellation of drag actions in all tools where it's missing (#1664)
* Change message sent from DocumentMessage::Undo to DocumentMessage::AbortTransaction while aborting select tool * Fix NavigationTool not aborting * Fix NavigationTool tilt * Make gradient tool abortable * Make PathTool drag actions abortable * Make FreeHand Tool abortable * Make BrushTool abortable * Fix filename typo * Make artboards also abortable * Rearrange key bindings for consistency --------- Co-authored-by: Keavon Chambers <keavon@keavon.com>
This commit is contained in:
co-authored by
Keavon Chambers
parent
218e9675fd
commit
aa9a3e648a
@@ -61,8 +61,8 @@ pub fn default_mapping() -> Mapping {
|
|||||||
// TransformLayerMessage
|
// TransformLayerMessage
|
||||||
entry!(KeyDown(Enter); action_dispatch=TransformLayerMessage::ApplyTransformOperation),
|
entry!(KeyDown(Enter); action_dispatch=TransformLayerMessage::ApplyTransformOperation),
|
||||||
entry!(KeyDown(Lmb); action_dispatch=TransformLayerMessage::ApplyTransformOperation),
|
entry!(KeyDown(Lmb); action_dispatch=TransformLayerMessage::ApplyTransformOperation),
|
||||||
entry!(KeyDown(Escape); action_dispatch=TransformLayerMessage::CancelTransformOperation),
|
|
||||||
entry!(KeyDown(Rmb); action_dispatch=TransformLayerMessage::CancelTransformOperation),
|
entry!(KeyDown(Rmb); action_dispatch=TransformLayerMessage::CancelTransformOperation),
|
||||||
|
entry!(KeyDown(Escape); action_dispatch=TransformLayerMessage::CancelTransformOperation),
|
||||||
entry!(KeyDown(KeyX); action_dispatch=TransformLayerMessage::ConstrainX),
|
entry!(KeyDown(KeyX); action_dispatch=TransformLayerMessage::ConstrainX),
|
||||||
entry!(KeyDown(KeyY); action_dispatch=TransformLayerMessage::ConstrainY),
|
entry!(KeyDown(KeyY); action_dispatch=TransformLayerMessage::ConstrainY),
|
||||||
entry!(KeyDown(Backspace); action_dispatch=TransformLayerMessage::TypeBackspace),
|
entry!(KeyDown(Backspace); action_dispatch=TransformLayerMessage::TypeBackspace),
|
||||||
@@ -110,6 +110,8 @@ pub fn default_mapping() -> Mapping {
|
|||||||
entry!(KeyDown(ArrowRight); modifiers=[ArrowUp], action_dispatch=ArtboardToolMessage::NudgeSelected { delta_x: NUDGE_AMOUNT, delta_y: -NUDGE_AMOUNT }),
|
entry!(KeyDown(ArrowRight); modifiers=[ArrowUp], action_dispatch=ArtboardToolMessage::NudgeSelected { delta_x: NUDGE_AMOUNT, delta_y: -NUDGE_AMOUNT }),
|
||||||
entry!(KeyDown(ArrowRight); modifiers=[ArrowDown], action_dispatch=ArtboardToolMessage::NudgeSelected { delta_x: NUDGE_AMOUNT, delta_y: NUDGE_AMOUNT }),
|
entry!(KeyDown(ArrowRight); modifiers=[ArrowDown], action_dispatch=ArtboardToolMessage::NudgeSelected { delta_x: NUDGE_AMOUNT, delta_y: NUDGE_AMOUNT }),
|
||||||
entry!(KeyDown(ArrowRight); action_dispatch=ArtboardToolMessage::NudgeSelected { delta_x: NUDGE_AMOUNT, delta_y: 0. }),
|
entry!(KeyDown(ArrowRight); action_dispatch=ArtboardToolMessage::NudgeSelected { delta_x: NUDGE_AMOUNT, delta_y: 0. }),
|
||||||
|
entry!(KeyDown(Rmb); action_dispatch=ArtboardToolMessage::Abort),
|
||||||
|
entry!(KeyDown(Escape); action_dispatch=ArtboardToolMessage::Abort),
|
||||||
//
|
//
|
||||||
// NavigateToolMessage
|
// NavigateToolMessage
|
||||||
entry!(KeyUp(Lmb); modifiers=[Shift], action_dispatch=NavigateToolMessage::ClickZoom { zoom_in: false }),
|
entry!(KeyUp(Lmb); modifiers=[Shift], action_dispatch=NavigateToolMessage::ClickZoom { zoom_in: false }),
|
||||||
@@ -142,6 +144,8 @@ pub fn default_mapping() -> Mapping {
|
|||||||
entry!(DoubleClick(MouseButton::Left); action_dispatch=GradientToolMessage::InsertStop),
|
entry!(DoubleClick(MouseButton::Left); action_dispatch=GradientToolMessage::InsertStop),
|
||||||
entry!(KeyDown(Delete); action_dispatch=GradientToolMessage::DeleteStop),
|
entry!(KeyDown(Delete); action_dispatch=GradientToolMessage::DeleteStop),
|
||||||
entry!(KeyDown(Backspace); action_dispatch=GradientToolMessage::DeleteStop),
|
entry!(KeyDown(Backspace); action_dispatch=GradientToolMessage::DeleteStop),
|
||||||
|
entry!(KeyDown(Rmb); action_dispatch=GradientToolMessage::Abort),
|
||||||
|
entry!(KeyDown(Escape); action_dispatch=GradientToolMessage::Abort),
|
||||||
//
|
//
|
||||||
// RectangleToolMessage
|
// RectangleToolMessage
|
||||||
entry!(KeyDown(Lmb); action_dispatch=RectangleToolMessage::DragStart),
|
entry!(KeyDown(Lmb); action_dispatch=RectangleToolMessage::DragStart),
|
||||||
@@ -235,6 +239,8 @@ pub fn default_mapping() -> Mapping {
|
|||||||
entry!(PointerMove; action_dispatch=FreehandToolMessage::PointerMove),
|
entry!(PointerMove; action_dispatch=FreehandToolMessage::PointerMove),
|
||||||
entry!(KeyDown(Lmb); action_dispatch=FreehandToolMessage::DragStart),
|
entry!(KeyDown(Lmb); action_dispatch=FreehandToolMessage::DragStart),
|
||||||
entry!(KeyUp(Lmb); action_dispatch=FreehandToolMessage::DragStop),
|
entry!(KeyUp(Lmb); action_dispatch=FreehandToolMessage::DragStop),
|
||||||
|
entry!(KeyDown(Rmb); action_dispatch=FreehandToolMessage::Abort),
|
||||||
|
entry!(KeyDown(Escape); action_dispatch=FreehandToolMessage::Abort),
|
||||||
//
|
//
|
||||||
// SplineToolMessage
|
// SplineToolMessage
|
||||||
entry!(PointerMove; action_dispatch=SplineToolMessage::PointerMove),
|
entry!(PointerMove; action_dispatch=SplineToolMessage::PointerMove),
|
||||||
@@ -254,6 +260,8 @@ pub fn default_mapping() -> Mapping {
|
|||||||
entry!(KeyUp(Lmb); action_dispatch=BrushToolMessage::DragStop),
|
entry!(KeyUp(Lmb); action_dispatch=BrushToolMessage::DragStop),
|
||||||
entry!(KeyDown(BracketLeft); action_dispatch=BrushToolMessage::UpdateOptions(BrushToolMessageOptionsUpdate::ChangeDiameter(-BRUSH_SIZE_CHANGE_KEYBOARD))),
|
entry!(KeyDown(BracketLeft); action_dispatch=BrushToolMessage::UpdateOptions(BrushToolMessageOptionsUpdate::ChangeDiameter(-BRUSH_SIZE_CHANGE_KEYBOARD))),
|
||||||
entry!(KeyDown(BracketRight); action_dispatch=BrushToolMessage::UpdateOptions(BrushToolMessageOptionsUpdate::ChangeDiameter(BRUSH_SIZE_CHANGE_KEYBOARD))),
|
entry!(KeyDown(BracketRight); action_dispatch=BrushToolMessage::UpdateOptions(BrushToolMessageOptionsUpdate::ChangeDiameter(BRUSH_SIZE_CHANGE_KEYBOARD))),
|
||||||
|
entry!(KeyDown(Rmb); action_dispatch=BrushToolMessage::Abort),
|
||||||
|
entry!(KeyDown(Escape); action_dispatch=BrushToolMessage::Abort),
|
||||||
//
|
//
|
||||||
// ToolMessage
|
// ToolMessage
|
||||||
entry!(KeyDown(KeyV); action_dispatch=ToolMessage::ActivateToolSelect),
|
entry!(KeyDown(KeyV); action_dispatch=ToolMessage::ActivateToolSelect),
|
||||||
@@ -346,7 +354,8 @@ pub fn default_mapping() -> Mapping {
|
|||||||
entry!(KeyUp(Mmb); action_dispatch=NavigationMessage::TransformCanvasEnd { abort_transform: false }),
|
entry!(KeyUp(Mmb); action_dispatch=NavigationMessage::TransformCanvasEnd { abort_transform: false }),
|
||||||
entry!(KeyDown(Lmb); modifiers=[Space], action_dispatch=NavigationMessage::TranslateCanvasBegin),
|
entry!(KeyDown(Lmb); modifiers=[Space], action_dispatch=NavigationMessage::TranslateCanvasBegin),
|
||||||
entry!(KeyUp(Lmb); action_dispatch=NavigationMessage::TransformCanvasEnd { abort_transform: false }),
|
entry!(KeyUp(Lmb); action_dispatch=NavigationMessage::TransformCanvasEnd { abort_transform: false }),
|
||||||
entry!(KeyUp(Rmb); action_dispatch=NavigationMessage::TransformCanvasEnd { abort_transform: true }),
|
entry!(KeyDown(Rmb); action_dispatch=NavigationMessage::TransformCanvasEnd { abort_transform: true }),
|
||||||
|
entry!(KeyDown(Escape); action_dispatch=NavigationMessage::TransformCanvasEnd { abort_transform: true }),
|
||||||
entry!(KeyDown(NumpadAdd); modifiers=[Accel], action_dispatch=NavigationMessage::IncreaseCanvasZoom { center_on_mouse: false }),
|
entry!(KeyDown(NumpadAdd); modifiers=[Accel], action_dispatch=NavigationMessage::IncreaseCanvasZoom { center_on_mouse: false }),
|
||||||
entry!(KeyDown(Equal); modifiers=[Accel], action_dispatch=NavigationMessage::IncreaseCanvasZoom { center_on_mouse: false }),
|
entry!(KeyDown(Equal); modifiers=[Accel], action_dispatch=NavigationMessage::IncreaseCanvasZoom { center_on_mouse: false }),
|
||||||
entry!(KeyDown(Minus); modifiers=[Accel], action_dispatch=NavigationMessage::DecreaseCanvasZoom { center_on_mouse: false }),
|
entry!(KeyDown(Minus); modifiers=[Accel], action_dispatch=NavigationMessage::DecreaseCanvasZoom { center_on_mouse: false }),
|
||||||
|
|||||||
@@ -230,6 +230,7 @@ impl MessageHandler<NavigationMessage, (&DocumentMetadata, Option<[DVec2; 2]>, &
|
|||||||
match self.transform_operation {
|
match self.transform_operation {
|
||||||
TransformOperation::None => {}
|
TransformOperation::None => {}
|
||||||
TransformOperation::Rotate { pre_commit_tilt, .. } => {
|
TransformOperation::Rotate { pre_commit_tilt, .. } => {
|
||||||
|
ptz.tilt = pre_commit_tilt;
|
||||||
responses.add(SetCanvasTilt { angle_radians: pre_commit_tilt });
|
responses.add(SetCanvasTilt { angle_radians: pre_commit_tilt });
|
||||||
}
|
}
|
||||||
TransformOperation::Pan { pre_commit_pan, .. } => {
|
TransformOperation::Pan { pre_commit_pan, .. } => {
|
||||||
|
|||||||
@@ -6,4 +6,4 @@ pub mod resize;
|
|||||||
pub mod shape_editor;
|
pub mod shape_editor;
|
||||||
pub mod snapping;
|
pub mod snapping;
|
||||||
pub mod transformation_cage;
|
pub mod transformation_cage;
|
||||||
pub mod utility_funcitons;
|
pub mod utility_functions;
|
||||||
|
|||||||
@@ -49,14 +49,23 @@ impl<'a> MessageHandler<ToolMessage, &mut ToolActionHandlerData<'a>> for Artboar
|
|||||||
self.fsm_state.process_event(message, &mut self.data, tool_data, &(), responses, false);
|
self.fsm_state.process_event(message, &mut self.data, tool_data, &(), responses, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
advertise_actions!(ArtboardToolMessageDiscriminant;
|
fn actions(&self) -> ActionList {
|
||||||
PointerDown,
|
use ArtboardToolFsmState::*;
|
||||||
PointerUp,
|
|
||||||
PointerMove,
|
let mut common = actions!(ArtboardToolMessageDiscriminant;
|
||||||
DeleteSelected,
|
DeleteSelected,
|
||||||
NudgeSelected,
|
NudgeSelected,
|
||||||
Abort,
|
PointerMove,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
let additional = match self.fsm_state {
|
||||||
|
Ready => actions!(ArtboardToolMessageDiscriminant; PointerDown),
|
||||||
|
_ => actions!(ArtboardToolMessageDiscriminant; PointerUp, Abort),
|
||||||
|
};
|
||||||
|
common.extend(additional);
|
||||||
|
|
||||||
|
common
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl LayoutHolder for ArtboardTool {
|
impl LayoutHolder for ArtboardTool {
|
||||||
@@ -396,8 +405,13 @@ impl Fsm for ArtboardToolFsmState {
|
|||||||
ArtboardToolFsmState::Ready
|
ArtboardToolFsmState::Ready
|
||||||
}
|
}
|
||||||
(_, ArtboardToolMessage::Abort) => {
|
(_, ArtboardToolMessage::Abort) => {
|
||||||
tool_data.snap_manager.cleanup(responses);
|
responses.add(DocumentMessage::AbortTransaction);
|
||||||
|
|
||||||
|
// ArtboardTool currently doesn't implement snapping
|
||||||
|
// tool_data.snap_manager.cleanup(responses);
|
||||||
|
|
||||||
responses.add(OverlaysMessage::Draw);
|
responses.add(OverlaysMessage::Draw);
|
||||||
|
|
||||||
ArtboardToolFsmState::Ready
|
ArtboardToolFsmState::Ready
|
||||||
}
|
}
|
||||||
_ => self,
|
_ => self,
|
||||||
|
|||||||
@@ -228,7 +228,6 @@ impl<'a> MessageHandler<ToolMessage, &mut ToolActionHandlerData<'a>> for BrushTo
|
|||||||
Ready => actions!(BrushToolMessageDiscriminant;
|
Ready => actions!(BrushToolMessageDiscriminant;
|
||||||
DragStart,
|
DragStart,
|
||||||
DragStop,
|
DragStop,
|
||||||
Abort,
|
|
||||||
UpdateOptions,
|
UpdateOptions,
|
||||||
),
|
),
|
||||||
Drawing => actions!(BrushToolMessageDiscriminant;
|
Drawing => actions!(BrushToolMessageDiscriminant;
|
||||||
@@ -370,18 +369,20 @@ impl Fsm for BrushToolFsmState {
|
|||||||
BrushToolFsmState::Drawing
|
BrushToolFsmState::Drawing
|
||||||
}
|
}
|
||||||
|
|
||||||
(BrushToolFsmState::Drawing, BrushToolMessage::DragStop) | (BrushToolFsmState::Drawing, BrushToolMessage::Abort) => {
|
(BrushToolFsmState::Drawing, BrushToolMessage::DragStop) => {
|
||||||
if !tool_data.strokes.is_empty() {
|
if !tool_data.strokes.is_empty() {
|
||||||
responses.add(DocumentMessage::CommitTransaction);
|
responses.add(DocumentMessage::CommitTransaction);
|
||||||
} else {
|
|
||||||
responses.add(DocumentMessage::AbortTransaction);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tool_data.strokes.clear();
|
tool_data.strokes.clear();
|
||||||
|
|
||||||
BrushToolFsmState::Ready
|
BrushToolFsmState::Ready
|
||||||
}
|
}
|
||||||
|
(BrushToolFsmState::Drawing, BrushToolMessage::Abort) => {
|
||||||
|
responses.add(DocumentMessage::AbortTransaction);
|
||||||
|
tool_data.strokes.clear();
|
||||||
|
|
||||||
|
BrushToolFsmState::Ready
|
||||||
|
}
|
||||||
(_, BrushToolMessage::WorkingColorChanged) => {
|
(_, BrushToolMessage::WorkingColorChanged) => {
|
||||||
responses.add(BrushToolMessage::UpdateOptions(BrushToolMessageOptionsUpdate::WorkingColors(
|
responses.add(BrushToolMessage::UpdateOptions(BrushToolMessageOptionsUpdate::WorkingColors(
|
||||||
Some(global_tool_data.primary_color),
|
Some(global_tool_data.primary_color),
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ use crate::messages::portfolio::document::overlays::utility_types::OverlayContex
|
|||||||
use crate::messages::portfolio::document::utility_types::document_metadata::LayerNodeIdentifier;
|
use crate::messages::portfolio::document::utility_types::document_metadata::LayerNodeIdentifier;
|
||||||
use crate::messages::tool::common_functionality::color_selector::{ToolColorOptions, ToolColorType};
|
use crate::messages::tool::common_functionality::color_selector::{ToolColorOptions, ToolColorType};
|
||||||
use crate::messages::tool::common_functionality::graph_modification_utils;
|
use crate::messages::tool::common_functionality::graph_modification_utils;
|
||||||
use crate::messages::tool::common_functionality::utility_funcitons::should_extend;
|
use crate::messages::tool::common_functionality::utility_functions::should_extend;
|
||||||
|
|
||||||
use graph_craft::document::NodeId;
|
use graph_craft::document::NodeId;
|
||||||
use graphene_core::uuid::generate_uuid;
|
use graphene_core::uuid::generate_uuid;
|
||||||
@@ -155,7 +155,6 @@ impl<'a> MessageHandler<ToolMessage, &mut ToolActionHandlerData<'a>> for Freehan
|
|||||||
Ready => actions!(FreehandToolMessageDiscriminant;
|
Ready => actions!(FreehandToolMessageDiscriminant;
|
||||||
DragStart,
|
DragStart,
|
||||||
DragStop,
|
DragStop,
|
||||||
Abort,
|
|
||||||
),
|
),
|
||||||
Drawing => actions!(FreehandToolMessageDiscriminant;
|
Drawing => actions!(FreehandToolMessageDiscriminant;
|
||||||
DragStop,
|
DragStop,
|
||||||
@@ -277,17 +276,21 @@ impl Fsm for FreehandToolFsmState {
|
|||||||
|
|
||||||
FreehandToolFsmState::Drawing
|
FreehandToolFsmState::Drawing
|
||||||
}
|
}
|
||||||
(FreehandToolFsmState::Drawing, FreehandToolMessage::DragStop | FreehandToolMessage::Abort) => {
|
(FreehandToolFsmState::Drawing, FreehandToolMessage::DragStop) => {
|
||||||
if tool_data.dragged {
|
if tool_data.dragged {
|
||||||
responses.add(DocumentMessage::CommitTransaction);
|
responses.add(DocumentMessage::CommitTransaction);
|
||||||
} else {
|
|
||||||
responses.add(DocumentMessage::AbortTransaction);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tool_data.layer = None;
|
tool_data.layer = None;
|
||||||
|
|
||||||
FreehandToolFsmState::Ready
|
FreehandToolFsmState::Ready
|
||||||
}
|
}
|
||||||
|
(FreehandToolFsmState::Drawing, FreehandToolMessage::Abort) => {
|
||||||
|
responses.add(DocumentMessage::AbortTransaction);
|
||||||
|
tool_data.layer = None;
|
||||||
|
|
||||||
|
FreehandToolFsmState::Ready
|
||||||
|
}
|
||||||
(_, FreehandToolMessage::WorkingColorChanged) => {
|
(_, FreehandToolMessage::WorkingColorChanged) => {
|
||||||
responses.add(FreehandToolMessage::UpdateOptions(FreehandOptionsUpdate::WorkingColors(
|
responses.add(FreehandToolMessage::UpdateOptions(FreehandOptionsUpdate::WorkingColors(
|
||||||
Some(global_tool_data.primary_color),
|
Some(global_tool_data.primary_color),
|
||||||
|
|||||||
@@ -441,12 +441,14 @@ impl Fsm for GradientToolFsmState {
|
|||||||
GradientToolFsmState::Ready
|
GradientToolFsmState::Ready
|
||||||
}
|
}
|
||||||
|
|
||||||
(_, GradientToolMessage::Abort) => {
|
(GradientToolFsmState::Drawing, GradientToolMessage::Abort) => {
|
||||||
|
responses.add(DocumentMessage::AbortTransaction);
|
||||||
tool_data.snap_manager.cleanup(responses);
|
tool_data.snap_manager.cleanup(responses);
|
||||||
responses.add(OverlaysMessage::Draw);
|
responses.add(OverlaysMessage::Draw);
|
||||||
|
|
||||||
GradientToolFsmState::Ready
|
GradientToolFsmState::Ready
|
||||||
}
|
}
|
||||||
|
(_, GradientToolMessage::Abort) => GradientToolFsmState::Ready,
|
||||||
_ => self,
|
_ => self,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -168,6 +168,8 @@ impl<'a> MessageHandler<ToolMessage, &mut ToolActionHandlerData<'a>> for PathToo
|
|||||||
DeleteAndBreakPath,
|
DeleteAndBreakPath,
|
||||||
),
|
),
|
||||||
Dragging => actions!(PathToolMessageDiscriminant;
|
Dragging => actions!(PathToolMessageDiscriminant;
|
||||||
|
Escape,
|
||||||
|
RightClick,
|
||||||
FlipSharp,
|
FlipSharp,
|
||||||
DragStop,
|
DragStop,
|
||||||
PointerMove,
|
PointerMove,
|
||||||
@@ -459,7 +461,6 @@ impl Fsm for PathToolFsmState {
|
|||||||
}
|
}
|
||||||
tool_data.end_insertion(shape_editor, responses, InsertEndKind::Abort)
|
tool_data.end_insertion(shape_editor, responses, InsertEndKind::Abort)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mouse down
|
// Mouse down
|
||||||
(_, PathToolMessage::MouseDown { ctrl, shift }) => {
|
(_, PathToolMessage::MouseDown { ctrl, shift }) => {
|
||||||
let add_to_selection = input.keyboard.get(shift as usize);
|
let add_to_selection = input.keyboard.get(shift as usize);
|
||||||
@@ -492,7 +493,12 @@ impl Fsm for PathToolFsmState {
|
|||||||
|
|
||||||
PathToolFsmState::Ready
|
PathToolFsmState::Ready
|
||||||
}
|
}
|
||||||
|
(PathToolFsmState::Dragging, PathToolMessage::Escape | PathToolMessage::RightClick) => {
|
||||||
|
responses.add(DocumentMessage::AbortTransaction);
|
||||||
|
shape_editor.deselect_all();
|
||||||
|
tool_data.snap_manager.cleanup(responses);
|
||||||
|
PathToolFsmState::Ready
|
||||||
|
}
|
||||||
// Mouse up
|
// Mouse up
|
||||||
(PathToolFsmState::DrawingBox, PathToolMessage::DragStop { shift_mirror_distance }) => {
|
(PathToolFsmState::DrawingBox, PathToolMessage::DragStop { shift_mirror_distance }) => {
|
||||||
let shift_pressed = input.keyboard.get(shift_mirror_distance as usize);
|
let shift_pressed = input.keyboard.get(shift_mirror_distance as usize);
|
||||||
@@ -507,7 +513,6 @@ impl Fsm for PathToolFsmState {
|
|||||||
|
|
||||||
PathToolFsmState::Ready
|
PathToolFsmState::Ready
|
||||||
}
|
}
|
||||||
|
|
||||||
(_, PathToolMessage::DragStop { shift_mirror_distance }) => {
|
(_, PathToolMessage::DragStop { shift_mirror_distance }) => {
|
||||||
let shift_pressed = input.keyboard.get(shift_mirror_distance as usize);
|
let shift_pressed = input.keyboard.get(shift_mirror_distance as usize);
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ use crate::messages::tool::common_functionality::color_selector::{ToolColorOptio
|
|||||||
use crate::messages::tool::common_functionality::graph_modification_utils;
|
use crate::messages::tool::common_functionality::graph_modification_utils;
|
||||||
use crate::messages::tool::common_functionality::graph_modification_utils::get_subpaths;
|
use crate::messages::tool::common_functionality::graph_modification_utils::get_subpaths;
|
||||||
use crate::messages::tool::common_functionality::snapping::{SnapCandidatePoint, SnapConstraint, SnapData, SnapManager};
|
use crate::messages::tool::common_functionality::snapping::{SnapCandidatePoint, SnapConstraint, SnapData, SnapManager};
|
||||||
use crate::messages::tool::common_functionality::utility_funcitons::should_extend;
|
use crate::messages::tool::common_functionality::utility_functions::should_extend;
|
||||||
|
|
||||||
use graph_craft::document::NodeId;
|
use graph_craft::document::NodeId;
|
||||||
use graphene_core::uuid::{generate_uuid, ManipulatorGroupId};
|
use graphene_core::uuid::{generate_uuid, ManipulatorGroupId};
|
||||||
|
|||||||
@@ -950,7 +950,7 @@ impl Fsm for SelectToolFsmState {
|
|||||||
}
|
}
|
||||||
(SelectToolFsmState::Dragging, SelectToolMessage::Abort) => {
|
(SelectToolFsmState::Dragging, SelectToolMessage::Abort) => {
|
||||||
tool_data.snap_manager.cleanup(responses);
|
tool_data.snap_manager.cleanup(responses);
|
||||||
responses.add(DocumentMessage::Undo);
|
responses.add(DocumentMessage::AbortTransaction);
|
||||||
responses.add(OverlaysMessage::Draw);
|
responses.add(OverlaysMessage::Draw);
|
||||||
|
|
||||||
SelectToolFsmState::Ready
|
SelectToolFsmState::Ready
|
||||||
|
|||||||
Reference in New Issue
Block a user