diff options
author | Canop <cano.petrole@gmail.com> | 2020-03-24 17:38:10 +0100 |
---|---|---|
committer | Canop <cano.petrole@gmail.com> | 2020-03-24 17:38:10 +0100 |
commit | 3bfb9f545206fa66b72c419d9307d78fe4b56673 (patch) | |
tree | deaac03a394aaddf128a0a0f839e42455764928b /src/browser_states.rs | |
parent | b8bc0b531098ee524d2900c7e5214da30bf6c78b (diff) |
right key open directory, left key gets back (when input is empty)
Fix #179
Diffstat (limited to 'src/browser_states.rs')
-rw-r--r-- | src/browser_states.rs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/browser_states.rs b/src/browser_states.rs index 1181ee3..3dd0af3 100644 --- a/src/browser_states.rs +++ b/src/browser_states.rs @@ -166,6 +166,24 @@ impl BrowserState { } } + pub fn go_to_parent( + &mut self, + screen: &mut Screen, + ) -> AppStateCmdResult { + match &self.displayed_tree().selected_line().path.parent() { + Some(path) => AppStateCmdResult::from_optional_state( + BrowserState::new( + path.to_path_buf(), + self.displayed_tree().options.without_pattern(), + screen, + &Dam::unlimited(), + ), + Command::new(), + ), + None => AppStateCmdResult::DisplayError("no parent found".to_string()), + } + } + fn normal_status_message(&self, has_pattern: bool) -> Composite<'static> { let tree = self.displayed_tree(); if tree.selection == 0 { |