From 573e8a011e3fa9edaa5f696b90a4fc40ccea993c Mon Sep 17 00:00:00 2001 From: defaultdino Date: Fri, 23 Oct 2026 09:09:11 +0200 Subject: [PATCH] fix regression ? not listing all keys --- src/app/keys.rs | 29 +++++++++++++---------------- src/ui/mod.rs | 7 +++++-- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/app/keys.rs b/src/app/keys.rs index 6b993c1..10a4a46 100644 --- a/src/app/keys.rs +++ b/src/app/keys.rs @@ -158,7 +158,6 @@ pub struct KeyBinding { pub struct Binding { pub keys: &'static [KeyBinding], pub action: Action, - pub show_in_help: bool, pub show_in_help_bar: bool, } @@ -166,13 +165,11 @@ const fn bind(action: Action, keys: &'static [KeyBinding]) -> Binding { Binding { keys, action, - show_in_help: true, show_in_help_bar: false, } } -const fn help_bar_only(mut binding: Binding) -> Binding { - binding.show_in_help = false; +const fn in_help_bar(mut binding: Binding) -> Binding { binding.show_in_help_bar = true; binding } @@ -224,7 +221,7 @@ pub const BINDINGS: &[Binding] = &[ bind(Action::Jump(Section::Playlists), &[key('3')]), bind(Action::Jump(Section::Search), &[key('4')]), bind(Action::Jump(Section::Queue), &[key('5')]), - help_bar_only(bind(Action::Search, &[key('/')])), + in_help_bar(bind(Action::Search, &[key('/')])), bind(Action::PlayPause, &[key(' ')]), bind(Action::Next, &[key('>')]), bind(Action::Previous, &[key('<')]), @@ -234,18 +231,18 @@ pub const BINDINGS: &[Binding] = &[ bind(Action::VolumeDown, &[key('-')]), bind(Action::Shuffle, &[key('s')]), bind(Action::Repeat, &[key('r')]), - help_bar_only(bind(Action::Append, &[key('a')])), - help_bar_only(bind(Action::PlayNext, &[key('n')])), - help_bar_only(bind(Action::Remove, &[key('d')])), - help_bar_only(bind(Action::MoveDown, &[key('J')])), - help_bar_only(bind(Action::MoveUp, &[key('K')])), - help_bar_only(bind(Action::Clear, &[key('D')])), - help_bar_only(bind(Action::Help, &[key('?')])), + in_help_bar(bind(Action::Append, &[key('a')])), + in_help_bar(bind(Action::PlayNext, &[key('n')])), + in_help_bar(bind(Action::Remove, &[key('d')])), + in_help_bar(bind(Action::MoveDown, &[key('J')])), + in_help_bar(bind(Action::MoveUp, &[key('K')])), + in_help_bar(bind(Action::Clear, &[key('D')])), + in_help_bar(bind(Action::Help, &[key('?')])), bind(Action::Quit, &[key('q')]), - help_bar_only(bind(Action::Play, &[key('P')])), - help_bar_only(bind(Action::PlayShuffle, &[key('S')])), - help_bar_only(bind(Action::SearchSubmit, &[code(KeyCode::Enter)])), - help_bar_only(bind(Action::SearchCancel, &[code(KeyCode::Esc)])), + in_help_bar(bind(Action::Play, &[key('P')])), + in_help_bar(bind(Action::PlayShuffle, &[key('S')])), + in_help_bar(bind(Action::SearchSubmit, &[code(KeyCode::Enter)])), + in_help_bar(bind(Action::SearchCancel, &[code(KeyCode::Esc)])), bind(Action::TogglePlayer, &[key('m')]), #[cfg(feature = "cast")] bind(Action::Cast, &[key('c')]), diff --git a/src/ui/mod.rs b/src/ui/mod.rs index 2562ea9..a9e2df5 100644 --- a/src/ui/mod.rs +++ b/src/ui/mod.rs @@ -6,7 +6,7 @@ use ratatui::widgets::{Block, Clear, Paragraph}; use unicode_width::UnicodeWidthStr; use crate::app::browser::{Items, ListKind, SearchItem, Section, View}; -use crate::app::keys::{BINDINGS, key_name}; +use crate::app::keys::{BINDINGS, SEARCH_INPUT_KEYS, key_name}; use crate::app::now_playing::NowPlaying; use crate::app::queue::Queue; use crate::app::state::{AppState, Focus, Modal, Screen}; @@ -317,7 +317,10 @@ fn row(v: &View, i: usize, queue: &Queue, multi_disc: bool) -> (String, String) fn draw_help(f: &mut Frame) { let mut groups: Vec<(&str, Vec)> = Vec::new(); - for b in BINDINGS.iter().filter(|b| b.show_in_help) { + for b in BINDINGS + .iter() + .filter(|b| !SEARCH_INPUT_KEYS.contains(&b.action)) + { let desc = b.action.describe(); match groups.iter_mut().find(|(d, _)| *d == desc) { Some((_, keys)) => keys.push(key_name(b)),