mirror of
https://github.com/ChrisTitusTech/linutil.git
synced 2024-12-23 20:09:44 +00:00
fix: Fixup preview rendering and logic of preview key binding being shown in shortcut list (#387)
* always check if selection is a command if list is focused * clear float widget render area before rendering content * Update hint.rs * Update floating_text.rs Thanks to @jeevithakannan2 for idea --------- Co-authored-by: Chris Titus <contact@christitus.com>
This commit is contained in:
parent
04537216d4
commit
1ea326747a
|
@ -8,7 +8,7 @@ use ratatui::{
|
|||
layout::Rect,
|
||||
style::{Style, Stylize},
|
||||
text::Line,
|
||||
widgets::{Block, Borders, List},
|
||||
widgets::{Block, Borders, Clear, List},
|
||||
Frame,
|
||||
};
|
||||
pub enum FloatingTextMode {
|
||||
|
@ -102,15 +102,14 @@ impl FloatContent for FloatingText {
|
|||
.map(Line::from)
|
||||
.collect();
|
||||
|
||||
// Prevents background text from appearing after the floating content
|
||||
while lines.len() < inner_area.height as usize {
|
||||
lines.push(Line::from(" ".repeat(inner_area.width as usize)));
|
||||
}
|
||||
// Create list widget
|
||||
let list = List::new(lines)
|
||||
.block(Block::default())
|
||||
.highlight_style(Style::default().reversed());
|
||||
|
||||
// Clear the text underneath the floats rendered area
|
||||
frame.render_widget(Clear, inner_area);
|
||||
|
||||
// Render the list inside the bordered area
|
||||
frame.render_widget(list, inner_area);
|
||||
}
|
||||
|
|
|
@ -114,9 +114,11 @@ pub fn draw_shortcuts(state: &AppState, frame: &mut Frame, area: Rect) {
|
|||
scope_name: "Search bar",
|
||||
hints: vec![Shortcut::new(vec!["Enter"], "Finish search")],
|
||||
},
|
||||
|
||||
Focus::List => {
|
||||
let mut hints = Vec::new();
|
||||
hints.push(Shortcut::new(vec!["q", "CTRL-c"], "Exit linutil"));
|
||||
|
||||
if state.at_root() {
|
||||
hints.push(Shortcut::new(vec!["h", "Left", "Tab"], "Focus tab list"));
|
||||
hints.push(get_list_item_shortcut(state));
|
||||
|
@ -136,15 +138,18 @@ pub fn draw_shortcuts(state: &AppState, frame: &mut Frame, area: Rect) {
|
|||
}
|
||||
hints.push(Shortcut::new(vec!["Tab"], "Focus tab list"));
|
||||
};
|
||||
|
||||
hints.push(Shortcut::new(vec!["k", "Up"], "Select item above"));
|
||||
hints.push(Shortcut::new(vec!["j", "Down"], "Select item below"));
|
||||
hints.push(Shortcut::new(vec!["t"], "Next theme"));
|
||||
hints.push(Shortcut::new(vec!["T"], "Previous theme"));
|
||||
|
||||
ShortcutList {
|
||||
scope_name: "Item list",
|
||||
hints,
|
||||
}
|
||||
}
|
||||
|
||||
Focus::TabList => ShortcutList {
|
||||
scope_name: "Tab list",
|
||||
hints: vec![
|
||||
|
@ -156,6 +161,7 @@ pub fn draw_shortcuts(state: &AppState, frame: &mut Frame, area: Rect) {
|
|||
Shortcut::new(vec!["T"], "Previous theme"),
|
||||
],
|
||||
},
|
||||
|
||||
Focus::FloatingWindow(ref float) => float.get_shortcut_list(),
|
||||
}
|
||||
.draw(frame, area);
|
||||
|
|
Loading…
Reference in New Issue
Block a user