@@ -617,22 +617,19 @@ impl MessageHandler<DocumentMessage, &InputPreprocessor> for DocumentMessageHand
617
617
let max = all_layer_paths. len ( ) as i64 - 1 ;
618
618
let insert_pos = ( pos as i64 + relative_positon as i64 ) . clamp ( 0 , max) as usize ;
619
619
let insert = all_layer_paths. get ( insert_pos) ;
620
- let position_change = ( insert_pos) as i32 - pos as i32 ;
621
- if position_change != 0 {
622
- if let Some ( insert_path) = insert {
623
- let ( id, path) = insert_path. split_last ( ) . expect ( "Can't move the root folder" ) ;
624
- if let Some ( folder) = self . active_document ( ) . document . document_layer ( path) . ok ( ) . map ( |layer| layer. as_folder ( ) . ok ( ) ) . flatten ( ) {
625
- let selected: Vec < _ > = selected_layers
626
- . iter ( )
627
- . filter ( |layer| layer. starts_with ( path) && layer. len ( ) == path. len ( ) + 1 )
628
- . map ( |x| x. last ( ) . unwrap ( ) )
629
- . collect ( ) ;
630
- let non_selected: Vec < _ > = folder. layer_ids . iter ( ) . filter ( |id| selected. iter ( ) . all ( |x| x != id) ) . collect ( ) ;
631
- let offset = if relative_positon < 0 || non_selected. is_empty ( ) { 0 } else { 1 } ;
632
- let fallback = offset * ( non_selected. len ( ) ) ;
633
- let insert_index = non_selected. iter ( ) . position ( |x| * x == id) . map ( |x| x + offset) . unwrap_or ( fallback) as isize ;
634
- responses. push_back ( DocumentMessage :: MoveSelectedLayersTo { path : path. to_vec ( ) , insert_index } . into ( ) )
635
- }
620
+ if let Some ( insert_path) = insert {
621
+ let ( id, path) = insert_path. split_last ( ) . expect ( "Can't move the root folder" ) ;
622
+ if let Some ( folder) = self . active_document ( ) . document . document_layer ( path) . ok ( ) . map ( |layer| layer. as_folder ( ) . ok ( ) ) . flatten ( ) {
623
+ let selected: Vec < _ > = selected_layers
624
+ . iter ( )
625
+ . filter ( |layer| layer. starts_with ( path) && layer. len ( ) == path. len ( ) + 1 )
626
+ . map ( |x| x. last ( ) . unwrap ( ) )
627
+ . collect ( ) ;
628
+ let non_selected: Vec < _ > = folder. layer_ids . iter ( ) . filter ( |id| selected. iter ( ) . all ( |x| x != id) ) . collect ( ) ;
629
+ let offset = if relative_positon < 0 || non_selected. is_empty ( ) { 0 } else { 1 } ;
630
+ let fallback = offset * ( non_selected. len ( ) ) ;
631
+ let insert_index = non_selected. iter ( ) . position ( |x| * x == id) . map ( |x| x + offset) . unwrap_or ( fallback) as isize ;
632
+ responses. push_back ( DocumentMessage :: MoveSelectedLayersTo { path : path. to_vec ( ) , insert_index } . into ( ) )
636
633
}
637
634
}
638
635
}
0 commit comments