Don't always render list cursor

This commit is contained in:
Joscha 2022-07-06 10:18:31 +02:00
parent a03971c019
commit 9f9f68466a
3 changed files with 11 additions and 4 deletions

View file

@ -189,7 +189,14 @@ impl<Id: Clone + Eq> List<Id> {
self.clamp_scrolling(height, rows.len()); self.clamp_scrolling(height, rows.len());
} }
pub fn render(&mut self, frame: &mut Frame, pos: Pos, size: Size, rows: Vec<Row<Id>>) { pub fn render(
&mut self,
frame: &mut Frame,
pos: Pos,
size: Size,
rows: Vec<Row<Id>>,
focus: bool,
) {
self.stabilize(size.height as usize, &rows); self.stabilize(size.height as usize, &rows);
for (i, row) in rows.into_iter().enumerate() { for (i, row) in rows.into_iter().enumerate() {
@ -208,7 +215,7 @@ impl<Id: Clone + Eq> List<Id> {
selected, selected,
selected_bg, selected_bg,
} => { } => {
let (fg, bg) = if self.cursor() == Some(&id) { let (fg, bg) = if focus && self.cursor() == Some(&id) {
(selected, selected_bg) (selected, selected_bg)
} else { } else {
(normal, normal_bg) (normal, normal_bg)

View file

@ -235,7 +235,7 @@ impl EuphRoom {
} }
let rows = Self::render_rows(joined); let rows = Self::render_rows(joined);
self.nick_list.render(frame, pos, size, rows); self.nick_list.render(frame, pos, size, rows, false);
} }
fn render_hsplit(frame: &mut Frame, hsplit: i32) { fn render_hsplit(frame: &mut Frame, hsplit: i32) {

View file

@ -149,7 +149,7 @@ impl Rooms {
async fn render_rooms(&mut self, frame: &mut Frame) { async fn render_rooms(&mut self, frame: &mut Frame) {
let rooms = self.stabilize_rooms().await; let rooms = self.stabilize_rooms().await;
let rows = self.render_rows(rooms).await; let rows = self.render_rows(rooms).await;
self.list.render(frame, Pos::ZERO, frame.size(), rows); self.list.render(frame, Pos::ZERO, frame.size(), rows, true);
} }
pub async fn handle_key_event( pub async fn handle_key_event(