Restore Pen tool undo/redo and fix incorrect triggering of undo when changing tools (#2193)
Fixes ghost anchors, and allows undo in pentool Fixes https://discord.com/channels/731730685944922173/881073965047636018/1267365764231598186. Fixes https://discord.com/channels/731730685944922173/881073965047636018/1327376421034922045. Fixes #2152. Co-authored-by: Keavon Chambers <keavon@keavon.com>
This commit is contained in:
parent
9a25555732
commit
ad68b1e5c8
|
|
@ -332,9 +332,8 @@ impl PenToolData {
|
|||
},
|
||||
});
|
||||
}
|
||||
if close_subpath {
|
||||
responses.add(DocumentMessage::EndTransaction);
|
||||
} else {
|
||||
responses.add(DocumentMessage::EndTransaction);
|
||||
if !close_subpath {
|
||||
self.add_point(LastPoint {
|
||||
id: end,
|
||||
pos: next_point,
|
||||
|
|
@ -764,7 +763,7 @@ impl Fsm for PenToolFsmState {
|
|||
|
||||
state
|
||||
}
|
||||
(PenToolFsmState::DraggingHandle | PenToolFsmState::PlacingAnchor, PenToolMessage::Abort | PenToolMessage::Confirm) => {
|
||||
(PenToolFsmState::DraggingHandle | PenToolFsmState::PlacingAnchor, PenToolMessage::Confirm) => {
|
||||
responses.add(DocumentMessage::EndTransaction);
|
||||
tool_data.handle_end = None;
|
||||
tool_data.latest_points.clear();
|
||||
|
|
@ -793,9 +792,8 @@ impl Fsm for PenToolFsmState {
|
|||
}
|
||||
(_, PenToolMessage::Redo) => {
|
||||
tool_data.point_index = (tool_data.point_index + 1).min(tool_data.latest_points.len().saturating_sub(1));
|
||||
tool_data
|
||||
.place_anchor(SnapData::new(document, input), transform, input.mouse.position, responses)
|
||||
.unwrap_or(PenToolFsmState::PlacingAnchor)
|
||||
tool_data.place_anchor(SnapData::new(document, input), transform, input.mouse.position, responses);
|
||||
(tool_data.point_index == 0).then_some(PenToolFsmState::Ready).unwrap_or(PenToolFsmState::PlacingAnchor)
|
||||
}
|
||||
_ => self,
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue