aboutsummaryrefslogtreecommitdiff
path: root/src/app/input/modal.rs
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-07-19 20:44:43 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-07-19 20:44:44 +0300
commita26a654351ee03b1a51d7b398f3bdff2c1ca920d (patch)
tree05382168990e4a6f50f6dbb5220c52fad062923d /src/app/input/modal.rs
parent01d371bf7a10330c6a5c139c7df766ae8f6f1cda (diff)
feat: connected tree glyphs, workspace grouping, and search auto-select in navigator
refs #1611
Diffstat (limited to 'src/app/input/modal.rs')
-rw-r--r--src/app/input/modal.rs16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/app/input/modal.rs b/src/app/input/modal.rs
index 23134ddc..dc126b40 100644
--- a/src/app/input/modal.rs
+++ b/src/app/input/modal.rs
@@ -173,7 +173,7 @@ pub(crate) fn handle_navigator_key(
KeyCode::Backspace => {
state.navigator.state_filter = None;
state.navigator.query.pop();
- state.clamp_navigator_selection_from(terminal_runtimes);
+ state.select_first_navigator_match_from(terminal_runtimes);
}
KeyCode::Up => state.move_navigator_selection_from(terminal_runtimes, -1),
KeyCode::Down => state.move_navigator_selection_from(terminal_runtimes, 1),
@@ -222,22 +222,22 @@ pub(crate) fn handle_navigator_key(
KeyCode::Char('b') if key.modifiers.is_empty() => {
state.navigator.query.clear();
state.navigator.state_filter = Some(NavigatorStateFilter::Blocked);
- state.clamp_navigator_selection_from(terminal_runtimes);
+ state.select_first_navigator_match_from(terminal_runtimes);
}
KeyCode::Char('w') if key.modifiers.is_empty() => {
state.navigator.query.clear();
state.navigator.state_filter = Some(NavigatorStateFilter::Working);
- state.clamp_navigator_selection_from(terminal_runtimes);
+ state.select_first_navigator_match_from(terminal_runtimes);
}
KeyCode::Char('i') if key.modifiers.is_empty() => {
state.navigator.query.clear();
state.navigator.state_filter = Some(NavigatorStateFilter::Idle);
- state.clamp_navigator_selection_from(terminal_runtimes);
+ state.select_first_navigator_match_from(terminal_runtimes);
}
KeyCode::Char('d') if key.modifiers.is_empty() => {
state.navigator.query.clear();
state.navigator.state_filter = Some(NavigatorStateFilter::Done);
- state.clamp_navigator_selection_from(terminal_runtimes);
+ state.select_first_navigator_match_from(terminal_runtimes);
}
KeyCode::Char('j') | KeyCode::Down => {
state.move_navigator_selection_from(terminal_runtimes, 1)
@@ -246,12 +246,12 @@ pub(crate) fn handle_navigator_key(
state.move_navigator_selection_from(terminal_runtimes, -1)
}
KeyCode::Char('d') if key.modifiers == KeyModifiers::CONTROL => state
- .move_navigator_selection_from(
+ .move_navigator_selection_by_lines_from(
terminal_runtimes,
(state.navigator_body_rect().height / 2).max(1) as isize,
),
KeyCode::Char('u') if key.modifiers == KeyModifiers::CONTROL => state
- .move_navigator_selection_from(
+ .move_navigator_selection_by_lines_from(
terminal_runtimes,
-((state.navigator_body_rect().height / 2).max(1) as isize),
),
@@ -281,7 +281,7 @@ pub(crate) fn insert_navigator_search_text(
}
state.navigator.state_filter = None;
state.navigator.query.push_str(text);
- state.clamp_navigator_selection_from(terminal_runtimes);
+ state.select_first_navigator_match_from(terminal_runtimes);
}
pub(crate) fn handle_keybind_help_key(state: &mut AppState, key: KeyEvent) {