@@ -1049,34 +1049,44 @@ fn reload_all(
1049
1049
view. id
1050
1050
} ;
1051
1051
1052
- let docs_views: Vec < ( DocumentId , ViewId ) > = cx
1052
+ let docs_views: Vec < ( DocumentId , Vec < ViewId > ) > = cx
1053
1053
. editor
1054
1054
. documents_mut ( )
1055
1055
. map ( |doc| {
1056
- let target_view = if doc. selections ( ) . contains_key ( & view_id) {
1057
- view_id
1058
- } else if let Some ( view) = doc. selections ( ) . keys ( ) . next ( ) {
1059
- * view
1060
- } else {
1056
+ let mut views: Vec < _ > = doc. selections ( ) . keys ( ) . cloned ( ) . collect ( ) ;
1057
+
1058
+ if views. is_empty ( ) {
1061
1059
doc. ensure_view_init ( view_id) ;
1062
- view_id
1060
+ views = vec ! [ view_id] ;
1063
1061
} ;
1064
1062
1065
- ( doc. id ( ) , target_view )
1063
+ ( doc. id ( ) , views )
1066
1064
} )
1067
1065
. collect ( ) ;
1068
1066
1069
- for ( doc_id, view_id) in docs_views {
1070
- let view = view_mut ! ( cx. editor, view_id) ;
1067
+ for ( doc_id, view_ids) in docs_views {
1071
1068
let doc = doc_mut ! ( cx. editor, & doc_id) ;
1072
1069
1070
+ let mut view_ids = view_ids. into_iter ( ) ;
1071
+
1072
+ // Every doc is guaranteed to have at least 1 view at this point.
1073
+ let view_id = view_ids. next ( ) . unwrap ( ) ;
1074
+ let view = view_mut ! ( cx. editor, view_id) ;
1075
+
1073
1076
doc. reload ( view) . map ( |_| {
1074
1077
view. ensure_cursor_in_view ( doc, scrolloff) ;
1075
1078
} ) ?;
1079
+
1080
+ for view_id in view_ids. into_iter ( ) {
1081
+ let view = view_mut ! ( cx. editor, view_id) ;
1082
+
1083
+ view. ensure_cursor_in_view ( doc, scrolloff) ;
1084
+ }
1076
1085
}
1077
1086
1078
1087
Ok ( ( ) )
1079
1088
}
1089
+
1080
1090
/// Update the [`Document`] if it has been modified.
1081
1091
fn update (
1082
1092
cx : & mut compositor:: Context ,
0 commit comments