File tree Expand file tree Collapse file tree 2 files changed +16
-15
lines changed Expand file tree Collapse file tree 2 files changed +16
-15
lines changed Original file line number Diff line number Diff line change @@ -150,8 +150,8 @@ impl DocumentMessageHandler {
150
150
151
151
let p2v = |point : kurbo:: Point | -> DVec2 { DVec2 :: from ( ( point. x , point. y ) ) } ;
152
152
153
- let points = shapes. map ( |shape| {
154
- shape. path . segments ( ) . map ( |segment| -> Vec < DVec2 > {
153
+ let points = shapes. flat_map ( |shape| {
154
+ shape. path . segments ( ) . flat_map ( |segment| -> Vec < DVec2 > {
155
155
match segment {
156
156
PathSeg :: Line ( line) => vec ! [ p2v( line. p0) , p2v( line. p1) ] ,
157
157
PathSeg :: Quad ( quad) => vec ! [ p2v( quad. p0) , p2v( quad. p1) , p2v( quad. p2) ] ,
@@ -160,7 +160,7 @@ impl DocumentMessageHandler {
160
160
} )
161
161
} ) ;
162
162
163
- points. flatten ( ) . flatten ( ) . collect :: < Vec < DVec2 > > ( )
163
+ points. collect :: < Vec < DVec2 > > ( )
164
164
}
165
165
pub fn layerdata ( & self , path : & [ LayerId ] ) -> & LayerData {
166
166
self . layer_data . get ( path) . expect ( "Layerdata does not exist" )
Original file line number Diff line number Diff line change @@ -72,18 +72,19 @@ impl Fsm for PathToolFsmState {
72
72
if let ToolMessage :: Path ( event) = event {
73
73
match ( self , event) {
74
74
( _, SelectedLayersChanged ) => {
75
- let response = match data. vector_handle_markers . take ( ) {
76
- // Some(path) => Operation::DeleteLayer { path }.into(),
77
- path => {
78
- let path = path. unwrap_or_else ( || add_marker ( responses) ) ;
79
- data. vector_handle_markers = Some ( path. clone ( ) ) ;
80
-
81
- let transform = DAffine2 :: IDENTITY . to_cols_array ( ) ;
82
- Operation :: SetLayerTransformInViewport { path, transform } . into ( )
83
- }
84
- _ => Message :: NoOp ,
85
- } ;
86
- responses. push_back ( response) ;
75
+ let path = data. vector_handle_markers . clone ( ) . unwrap_or_else ( || add_marker ( responses) ) ;
76
+ let marker_list = document. selected_layers_vector_handles ( ) ;
77
+ if marker_list. len ( ) >= 1 {
78
+ let first_marker = marker_list[ 0 ] * 1000. ;
79
+
80
+ data. vector_handle_markers = Some ( path. clone ( ) ) ;
81
+
82
+ let transform = DAffine2 :: from_translation ( first_marker) . to_cols_array ( ) ;
83
+
84
+ let response = Operation :: SetLayerTransformInViewport { path, transform } . into ( ) ;
85
+ responses. push_back ( response) ;
86
+ }
87
+
87
88
self
88
89
}
89
90
_ => self ,
You can’t perform that action at this time.
0 commit comments