diff options
author | Jeff Zhao <jeff.no.zhao@gmail.com> | 2021-09-30 17:57:46 -0400 |
---|---|---|
committer | Jeff Zhao <jeff.no.zhao@gmail.com> | 2021-09-30 17:57:46 -0400 |
commit | 7d8b6ddd19c00661f999370f40a4c414183deb3b (patch) | |
tree | bdb31bcee0b41cadf05642a92512f1fd07f55dea | |
parent | b209d268a67b43b1f2fa073ef62cf810eb62c447 (diff) |
fix parent directory not refreshing for hidden files toggle
-rw-r--r-- | src/commands/parent_directory.rs | 1 | ||||
-rw-r--r-- | src/commands/reload.rs | 4 | ||||
-rw-r--r-- | src/event.rs | 3 | ||||
-rw-r--r-- | src/fs/dirlist.rs | 10 |
4 files changed, 10 insertions, 8 deletions
diff --git a/src/commands/parent_directory.rs b/src/commands/parent_directory.rs index 40a43cb..71baf1e 100644 --- a/src/commands/parent_directory.rs +++ b/src/commands/parent_directory.rs @@ -20,5 +20,6 @@ pub fn parent_directory_helper(context: &mut AppContext) -> std::io::Result<()> pub fn parent_directory(context: &mut AppContext) -> JoshutoResult<()> { parent_directory_helper(context)?; + reload::soft_reload(context.tab_context_ref().index, context)?; Ok(()) } diff --git a/src/commands/reload.rs b/src/commands/reload.rs index 8bdd11f..d1e0698 100644 --- a/src/commands/reload.rs +++ b/src/commands/reload.rs @@ -2,6 +2,7 @@ use crate::context::AppContext; use crate::error::JoshutoResult; use crate::history::create_dirlist_with_history; +// reload only if we have a queued reload pub fn soft_reload(index: usize, context: &mut AppContext) -> std::io::Result<()> { let mut paths = Vec::with_capacity(3); if let Some(curr_tab) = context.tab_context_ref().tab_ref(index) { @@ -35,9 +36,6 @@ pub fn soft_reload(index: usize, context: &mut AppContext) -> std::io::Result<() } } } - context - .message_queue_mut() - .push_success("Directory listing reloaded!".to_string()); Ok(()) } diff --git a/src/event.rs b/src/event.rs index c3e506e..7c0cf2b 100644 --- a/src/event.rs +++ b/src/event.rs @@ -99,6 +99,9 @@ impl Events { } } + // We need a next() and a flush() so we don't continuously consume + // input from the console. Sometimes, other applications need to + // read terminal inputs while joshuto is in the background pub fn next(&self) -> Result<AppEvent, mpsc::RecvError> { let event = self.event_rx.recv()?; Ok(event) diff --git a/src/fs/dirlist.rs b/src/fs/dirlist.rs index d74a799..0e48820 100644 --- a/src/fs/dirlist.rs +++ b/src/fs/dirlist.rs @@ -9,7 +9,7 @@ use crate::util::display::DisplayOption; pub struct JoshutoDirList { pub index: Option<usize>, path: path::PathBuf, - content_outdated: bool, + _need_update: bool, pub metadata: JoshutoMetadata, pub contents: Vec<JoshutoDirEntry>, } @@ -24,7 +24,7 @@ impl JoshutoDirList { Self { index, path, - content_outdated: false, + _need_update: false, metadata, contents, } @@ -44,7 +44,7 @@ impl JoshutoDirList { Ok(Self { index, path, - content_outdated: false, + _need_update: false, metadata, contents, }) @@ -78,11 +78,11 @@ impl JoshutoDirList { } pub fn depreciate(&mut self) { - self.content_outdated = true; + self._need_update = true; } pub fn need_update(&self) -> bool { - self.content_outdated || self.modified() + self._need_update } pub fn file_path(&self) -> &path::PathBuf { |