summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Zhao <jeff.no.zhao@gmail.com>2021-09-30 17:57:46 -0400
committerJeff Zhao <jeff.no.zhao@gmail.com>2021-09-30 17:57:46 -0400
commit7d8b6ddd19c00661f999370f40a4c414183deb3b (patch)
treebdb31bcee0b41cadf05642a92512f1fd07f55dea
parentb209d268a67b43b1f2fa073ef62cf810eb62c447 (diff)
fix parent directory not refreshing for hidden files toggle
-rw-r--r--src/commands/parent_directory.rs1
-rw-r--r--src/commands/reload.rs4
-rw-r--r--src/event.rs3
-rw-r--r--src/fs/dirlist.rs10
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 {