mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-29 16:38:12 +08:00
This commit is contained in:
@@ -917,7 +917,6 @@ impl MessageHandler<DocumentMessage, DocumentMessageContext<'_>> for DocumentMes
|
|||||||
}
|
}
|
||||||
responses.add(SelectToolMessage::Abort);
|
responses.add(SelectToolMessage::Abort);
|
||||||
responses.add(DocumentMessage::DocumentHistoryForward);
|
responses.add(DocumentMessage::DocumentHistoryForward);
|
||||||
responses.add(ToolMessage::Redo);
|
|
||||||
responses.add(OverlaysMessage::Draw);
|
responses.add(OverlaysMessage::Draw);
|
||||||
responses.add(EventMessage::SelectionChanged);
|
responses.add(EventMessage::SelectionChanged);
|
||||||
}
|
}
|
||||||
@@ -1529,10 +1528,9 @@ impl MessageHandler<DocumentMessage, DocumentMessageContext<'_>> for DocumentMes
|
|||||||
if self.network_interface.transaction_status() != TransactionStatus::Finished {
|
if self.network_interface.transaction_status() != TransactionStatus::Finished {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
responses.add(ToolMessage::PreUndo);
|
responses.add(EventMessage::ToolAbort);
|
||||||
responses.add(DocumentMessage::DocumentHistoryBackward);
|
responses.add(DocumentMessage::DocumentHistoryBackward);
|
||||||
responses.add(OverlaysMessage::Draw);
|
responses.add(OverlaysMessage::Draw);
|
||||||
responses.add(ToolMessage::Undo);
|
|
||||||
responses.add(EventMessage::SelectionChanged);
|
responses.add(EventMessage::SelectionChanged);
|
||||||
}
|
}
|
||||||
DocumentMessage::UngroupSelectedLayers => {
|
DocumentMessage::UngroupSelectedLayers => {
|
||||||
|
|||||||
@@ -76,8 +76,6 @@ pub enum ToolMessage {
|
|||||||
},
|
},
|
||||||
DeactivateTools,
|
DeactivateTools,
|
||||||
InitTools,
|
InitTools,
|
||||||
PreUndo,
|
|
||||||
Redo,
|
|
||||||
RefreshToolOptions,
|
RefreshToolOptions,
|
||||||
RefreshToolShelf,
|
RefreshToolShelf,
|
||||||
ResetColors,
|
ResetColors,
|
||||||
@@ -90,7 +88,6 @@ pub enum ToolMessage {
|
|||||||
},
|
},
|
||||||
ToggleSelectVsPath,
|
ToggleSelectVsPath,
|
||||||
SwapColors,
|
SwapColors,
|
||||||
Undo,
|
|
||||||
UpdateCursor,
|
UpdateCursor,
|
||||||
UpdateHints,
|
UpdateHints,
|
||||||
UpdateSelectionMode {
|
UpdateSelectionMode {
|
||||||
|
|||||||
@@ -243,18 +243,6 @@ impl MessageHandler<ToolMessage, ToolMessageContext<'_>> for ToolMessageHandler
|
|||||||
|
|
||||||
responses.add(OverlaysMessage::AddProvider { provider: ARTBOARD_OVERLAY_PROVIDER });
|
responses.add(OverlaysMessage::AddProvider { provider: ARTBOARD_OVERLAY_PROVIDER });
|
||||||
}
|
}
|
||||||
ToolMessage::PreUndo => {
|
|
||||||
let tool_data = &mut self.tool_state.tool_data;
|
|
||||||
if tool_data.active_tool_type != ToolType::Pen {
|
|
||||||
responses.add(EventMessage::ToolAbort);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ToolMessage::Redo => {
|
|
||||||
let tool_data = &mut self.tool_state.tool_data;
|
|
||||||
if tool_data.active_tool_type == ToolType::Pen {
|
|
||||||
responses.add(PenToolMessage::Redo);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ToolMessage::RefreshToolOptions => {
|
ToolMessage::RefreshToolOptions => {
|
||||||
let tool_data = &mut self.tool_state.tool_data;
|
let tool_data = &mut self.tool_state.tool_data;
|
||||||
|
|
||||||
@@ -318,12 +306,6 @@ impl MessageHandler<ToolMessage, ToolMessageContext<'_>> for ToolMessageHandler
|
|||||||
|
|
||||||
document_data.update_working_colors(responses); // TODO: Make this an event
|
document_data.update_working_colors(responses); // TODO: Make this an event
|
||||||
}
|
}
|
||||||
ToolMessage::Undo => {
|
|
||||||
let tool_data = &mut self.tool_state.tool_data;
|
|
||||||
if tool_data.active_tool_type == ToolType::Pen {
|
|
||||||
responses.add(PenToolMessage::Undo);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Sub-messages
|
// Sub-messages
|
||||||
tool_message => {
|
tool_message => {
|
||||||
@@ -390,8 +372,6 @@ impl MessageHandler<ToolMessage, ToolMessageContext<'_>> for ToolMessageHandler
|
|||||||
SelectRandomWorkingColor,
|
SelectRandomWorkingColor,
|
||||||
ResetColors,
|
ResetColors,
|
||||||
SwapColors,
|
SwapColors,
|
||||||
|
|
||||||
Undo,
|
|
||||||
);
|
);
|
||||||
list.extend(self.tool_state.tool_data.active_tool().actions());
|
list.extend(self.tool_state.tool_data.active_tool().actions());
|
||||||
list.extend(self.transform_layer_handler.actions());
|
list.extend(self.transform_layer_handler.actions());
|
||||||
|
|||||||
@@ -83,7 +83,6 @@ pub enum PenToolMessage {
|
|||||||
colinear: Key,
|
colinear: Key,
|
||||||
move_anchor_with_handles: Key,
|
move_anchor_with_handles: Key,
|
||||||
},
|
},
|
||||||
Redo,
|
|
||||||
Undo,
|
Undo,
|
||||||
UpdateOptions {
|
UpdateOptions {
|
||||||
options: PenOptionsUpdate,
|
options: PenOptionsUpdate,
|
||||||
@@ -485,30 +484,6 @@ impl PenToolData {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Re-renders the preview after an undo/redo once the graph has re-evaluated, since the layer transform is
|
|
||||||
/// briefly stale until then and would place the preview off in the wrong space. Also suppresses the angle
|
|
||||||
/// modifiers (Ctrl, Shift) still held from the shortcut until each is released and pressed again.
|
|
||||||
fn refresh_preview_after_history(&mut self, responses: &mut VecDeque<Message>) {
|
|
||||||
self.suppress_lock_angle = true;
|
|
||||||
self.suppress_snap_angle = true;
|
|
||||||
self.modifiers.lock_angle = false;
|
|
||||||
self.modifiers.snap_angle = false;
|
|
||||||
self.angle_locked = false;
|
|
||||||
|
|
||||||
responses.add(DeferMessage::AfterGraphRun {
|
|
||||||
messages: vec![
|
|
||||||
PenToolMessage::PointerMove {
|
|
||||||
snap_angle: Key::Shift,
|
|
||||||
break_handle: Key::Alt,
|
|
||||||
lock_angle: Key::Control,
|
|
||||||
colinear: Key::KeyC,
|
|
||||||
move_anchor_with_handles: Key::Space,
|
|
||||||
}
|
|
||||||
.into(),
|
|
||||||
],
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Check whether target handle is primary, end, or `self.handle_end`
|
/// Check whether target handle is primary, end, or `self.handle_end`
|
||||||
fn check_end_handle_type(&self, vector: &Vector) -> TargetHandle {
|
fn check_end_handle_type(&self, vector: &Vector) -> TargetHandle {
|
||||||
match (self.handle_end, self.prior_segment_endpoint, self.prior_segment, self.path_closed) {
|
match (self.handle_end, self.prior_segment_endpoint, self.prior_segment, self.path_closed) {
|
||||||
@@ -1926,9 +1901,6 @@ impl Fsm for PenToolFsmState {
|
|||||||
tool_data.buffering_merged_vector = false;
|
tool_data.buffering_merged_vector = false;
|
||||||
PenToolFsmState::DraggingHandle(tool_data.handle_mode)
|
PenToolFsmState::DraggingHandle(tool_data.handle_mode)
|
||||||
} else {
|
} else {
|
||||||
if tool_data.handle_end.is_some() {
|
|
||||||
responses.add(DocumentMessage::StartTransaction);
|
|
||||||
}
|
|
||||||
// Merge two layers if the point is connected to the end point of another path
|
// Merge two layers if the point is connected to the end point of another path
|
||||||
|
|
||||||
// This might not be the correct solution to artboards being included as the other layer,
|
// This might not be the correct solution to artboards being included as the other layer,
|
||||||
@@ -2248,24 +2220,6 @@ impl Fsm for PenToolFsmState {
|
|||||||
PenToolFsmState::Ready
|
PenToolFsmState::Ready
|
||||||
}
|
}
|
||||||
(_, PenToolMessage::Abort) => PenToolFsmState::Ready,
|
(_, PenToolMessage::Abort) => PenToolFsmState::Ready,
|
||||||
(PenToolFsmState::DraggingHandle(..) | PenToolFsmState::PlacingAnchor, PenToolMessage::Undo) => {
|
|
||||||
if tool_data.point_index > 0 {
|
|
||||||
tool_data.point_index -= 1;
|
|
||||||
tool_data.refresh_preview_after_history(responses);
|
|
||||||
PenToolFsmState::PlacingAnchor
|
|
||||||
} else {
|
|
||||||
responses.add(PenToolMessage::Abort);
|
|
||||||
self
|
|
||||||
}
|
|
||||||
}
|
|
||||||
(_, PenToolMessage::Redo) => {
|
|
||||||
tool_data.point_index = (tool_data.point_index + 1).min(tool_data.latest_points.len().saturating_sub(1));
|
|
||||||
tool_data.refresh_preview_after_history(responses);
|
|
||||||
match tool_data.point_index {
|
|
||||||
0 => PenToolFsmState::Ready,
|
|
||||||
_ => PenToolFsmState::PlacingAnchor,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
_ => self,
|
_ => self,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user