summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorqkzk <qu3nt1n@gmail.com>2023-11-05 17:11:40 +0100
committerqkzk <qu3nt1n@gmail.com>2023-11-05 17:11:40 +0100
commita6b4c084c56a2e4368fa431b9e361d8b9eb1a62e (patch)
tree72c89f4653db20d90f22b603a677dffbf3daa3f0 /src
parent0b4667503c2575d153a0f5aa064e0cd55e18b806 (diff)
tree select root
Diffstat (limited to 'src')
-rw-r--r--src/tab.rs6
-rw-r--r--src/trees.rs12
2 files changed, 16 insertions, 2 deletions
diff --git a/src/tab.rs b/src/tab.rs
index 72e5ef2..ff111ad 100644
--- a/src/tab.rs
+++ b/src/tab.rs
@@ -533,8 +533,10 @@ impl Tab {
/// Fold every child node in the tree.
/// Recursively explore the tree and fold every node. Reset the display.
pub fn tree_go_to_root(&mut self) -> Result<()> {
- self.directory.tree.reset_required_height();
- self.tree_select_root()
+ // self.directory.tree.reset_required_height();
+ // self.tree_select_root()
+ self.tree.select_root();
+ Ok(())
}
/// Select the first child of the current node and reset the display.
diff --git a/src/trees.rs b/src/trees.rs
index ddf54e7..e19cec1 100644
--- a/src/trees.rs
+++ b/src/trees.rs
@@ -285,6 +285,18 @@ impl FileSystem {
}
}
+ pub fn select_root(&mut self) {
+ let Some(selected_node) = self.nodes.get_mut(&self.selected) else {
+ unreachable!("selected path should be in node")
+ };
+ selected_node.unselect();
+ let Some(root_node) = self.nodes.get_mut(&self.root_path) else {
+ unreachable!("root path should be in nodes")
+ };
+ root_node.select();
+ self.selected = self.root_path.to_owned();
+ }
+
/// Fold selected node
pub fn toggle_fold(&mut self) {
if let Some(node) = self.nodes.get_mut(&self.selected) {