diff options
author | Azad <49314270+Akmadan23@users.noreply.github.com> | 2024-02-20 21:55:55 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-20 15:55:55 -0500 |
commit | 8f1c36ae882bed585320292c0942b59bdf4d86a9 (patch) | |
tree | 09678e0f9432ad7edadc0013326cf380c5ece513 | |
parent | f2a707e4cc9f029ed183ded92c29884efea43f7f (diff) |
fix: update all lists viewports on sort method change (#492)
-rw-r--r-- | src/commands/sort.rs | 17 | ||||
-rw-r--r-- | src/fs/dirlist.rs | 2 |
2 files changed, 18 insertions, 1 deletions
diff --git a/src/commands/sort.rs b/src/commands/sort.rs index f78fd0a..7bea48f 100644 --- a/src/commands/sort.rs +++ b/src/commands/sort.rs @@ -25,5 +25,22 @@ pub fn toggle_reverse(context: &mut AppContext) -> AppResult { fn refresh(context: &mut AppContext) -> AppResult { reload::soft_reload_curr_tab(context)?; + + let ui_context = context.ui_context_ref().clone(); + let display_options = context.config_ref().display_options_ref().clone(); + let curr_tab = context.tab_context_mut().curr_tab_mut(); + + macro_rules! update_viewport { + ($x_list_mut: ident) => { + if let Some(list) = curr_tab.$x_list_mut() { + list.update_viewport(&ui_context, &display_options); + } + }; + } + + update_viewport!(curr_list_mut); + update_viewport!(parent_list_mut); + update_viewport!(child_list_mut); + Ok(()) } diff --git a/src/fs/dirlist.rs b/src/fs/dirlist.rs index 2acf7c1..30738f3 100644 --- a/src/fs/dirlist.rs +++ b/src/fs/dirlist.rs @@ -135,7 +135,7 @@ impl JoshutoDirList { } } - fn update_viewport(&mut self, ui_context: &UiContext, options: &DisplayOption) { + pub fn update_viewport(&mut self, ui_context: &UiContext, options: &DisplayOption) { if let Some(ix) = self.index { let height = ui_context.layout[0].height as usize; |