summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAzad <49314270+Akmadan23@users.noreply.github.com>2024-02-20 21:55:55 +0100
committerGitHub <noreply@github.com>2024-02-20 15:55:55 -0500
commit8f1c36ae882bed585320292c0942b59bdf4d86a9 (patch)
tree09678e0f9432ad7edadc0013326cf380c5ece513
parentf2a707e4cc9f029ed183ded92c29884efea43f7f (diff)
fix: update all lists viewports on sort method change (#492)
-rw-r--r--src/commands/sort.rs17
-rw-r--r--src/fs/dirlist.rs2
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;