diff options
Diffstat (limited to 'src/files.rs')
-rw-r--r-- | src/files.rs | 29 |
1 files changed, 12 insertions, 17 deletions
diff --git a/src/files.rs b/src/files.rs index 25d21ad..7720aa7 100644 --- a/src/files.rs +++ b/src/files.rs @@ -190,26 +190,12 @@ impl RefreshPackage { // Files added, removed, renamed to hidden, etc... files.recalculate_len(); - let new_len = files.len(); - // Need to unpack this to prevent issue with recursive Files type - // Also, if no files remain add placeholder - let files = if files.len() > 0 { - // Sort again to make sure new/changed files are in correct order - files.sort(); - files.files - } else { - let placeholder = File::new_placeholder(&files.directory.path).unwrap(); - files.files.push(placeholder); - - // Need to sort because of possible hidden files - files.sort(); - files.files - }; + files.sort(); + // Prerender new buffer in current thread let mut old_buffer = old_buffer; - // Prerender new buffer in current thread - let new_buffer = files.iter() + let new_buffer = files.iter_files() .map(|file| { match list_pos_map.get(&file) { Some(&old_pos) => @@ -221,6 +207,15 @@ impl RefreshPackage { } }).collect(); + // Need to unpack this to prevent issue with recursive Files type + // Also, if no files remain add placeholder and set len + let (files, new_len) = if files.len() > 0 { + (files.files, files.len) + } else { + let placeholder = File::new_placeholder(&files.directory.path).unwrap(); + files.files.push(placeholder); + (files.files, 1) + }; RefreshPackage { |