Place new layers in tree based on layer selection (#526)

* place new layers based on layer selection
This commit is contained in:
Wuelle
2022-02-09 19:54:38 +01:00
committed by Keavon Chambers
parent 5534d0a44c
commit d9fbcd0092
9 changed files with 18 additions and 7 deletions
+1 -1
View File
@@ -111,7 +111,7 @@ impl Fsm for EllipseToolFsmState {
(Ready, DragStart) => {
shape_data.start(responses, input.viewport_bounds.size(), document, input.mouse.position);
responses.push_back(DocumentMessage::StartTransaction.into());
shape_data.path = Some(vec![generate_uuid()]);
shape_data.path = Some(document.get_path_for_new_layer());
responses.push_back(DocumentMessage::DeselectAllLayers.into());
responses.push_back(
+1 -1
View File
@@ -148,7 +148,7 @@ impl Fsm for FreehandToolFsmState {
(Ready, DragStart) => {
responses.push_back(DocumentMessage::StartTransaction.into());
responses.push_back(DocumentMessage::DeselectAllLayers.into());
data.path = Some(vec![generate_uuid()]);
data.path = Some(document.get_path_for_new_layer());
let pos = transform.inverse().transform_point2(input.mouse.position);
+1 -1
View File
@@ -159,7 +159,7 @@ impl Fsm for LineToolFsmState {
data.drag_start = data.snap_handler.snap_position(responses, input.viewport_bounds.size(), document, input.mouse.position);
responses.push_back(DocumentMessage::StartTransaction.into());
data.path = Some(vec![generate_uuid()]);
data.path = Some(document.get_path_for_new_layer());
responses.push_back(DocumentMessage::DeselectAllLayers.into());
data.weight = tool_options.line_weight;
+1 -1
View File
@@ -153,7 +153,7 @@ impl Fsm for PenToolFsmState {
(Ready, DragStart) => {
responses.push_back(DocumentMessage::StartTransaction.into());
responses.push_back(DocumentMessage::DeselectAllLayers.into());
data.path = Some(vec![generate_uuid()]);
data.path = Some(document.get_path_for_new_layer());
data.snap_handler.start_snap(document, document.visible_layers(), true, true);
let snapped_position = data.snap_handler.snap_position(responses, input.viewport_bounds.size(), document, input.mouse.position);
+1 -1
View File
@@ -110,7 +110,7 @@ impl Fsm for RectangleToolFsmState {
(Ready, DragStart) => {
shape_data.start(responses, input.viewport_bounds.size(), document, input.mouse.position);
responses.push_back(DocumentMessage::StartTransaction.into());
shape_data.path = Some(vec![generate_uuid()]);
shape_data.path = Some(document.get_path_for_new_layer());
responses.push_back(DocumentMessage::DeselectAllLayers.into());
responses.push_back(
+1 -1
View File
@@ -151,7 +151,7 @@ impl Fsm for ShapeToolFsmState {
(Ready, DragStart) => {
shape_data.start(responses, input.viewport_bounds.size(), document, input.mouse.position);
responses.push_back(DocumentMessage::StartTransaction.into());
shape_data.path = Some(vec![generate_uuid()]);
shape_data.path = Some(document.get_path_for_new_layer());
responses.push_back(DocumentMessage::DeselectAllLayers.into());
data.sides = tool_options.vertices;
@@ -15,6 +15,7 @@ pub struct Resize {
pub path: Option<Vec<LayerId>>,
snap_handler: SnapHandler,
}
impl Resize {
/// Starts a resize, assigning the snap targets and snapping the starting position.
pub fn start(&mut self, responses: &mut VecDeque<Message>, viewport_bounds: DVec2, document: &DocumentMessageHandler, mouse_position: DVec2) {
+1 -1
View File
@@ -246,7 +246,7 @@ impl Fsm for TextToolFsmState {
else if state == TextToolFsmState::Ready {
let transform = DAffine2::from_translation(input.mouse.position).to_cols_array();
let font_size = tool_options.font_size;
data.path = vec![generate_uuid()];
data.path = document.get_path_for_new_layer();
responses.push_back(
Operation::AddText {