diff --git a/src/app.rs b/src/app.rs index 446a55d..4e0c87f 100644 --- a/src/app.rs +++ b/src/app.rs @@ -436,7 +436,7 @@ impl TTApp { let (contexts, headers) = self.get_all_contexts(); - let maximum_column_width = area.width - 2; + let maximum_column_width = area.width; let widths = self.calculate_widths(&contexts, &headers, maximum_column_width); let selected = self.context_table_state.selected().unwrap_or_default(); @@ -618,7 +618,7 @@ impl TTApp { return; } - let maximum_column_width = rect.width - 2; + let maximum_column_width = rect.width; let widths = self.calculate_widths(&tasks, &headers, maximum_column_width); for (i, header) in headers.iter().enumerate() { diff --git a/src/table.rs b/src/table.rs index 42b9b12..02cdd55 100644 --- a/src/table.rs +++ b/src/table.rs @@ -274,14 +274,18 @@ where let mut x = table_area.left(); // Draw header + let mut header_index = usize::MAX; + let mut index = 0; if y < table_area.bottom() { for (w, t) in solved_widths.iter().zip(self.header.by_ref()) { if t.to_string() == "ID" { buf.set_stringn(x, y, format!("{symbol:>width$}", symbol=t, width=*w as usize), *w as usize, self.header_style); + header_index = index; } else { buf.set_stringn(x, y, format!("{}", t), *w as usize, self.header_style); } x += *w + self.column_spacing; + index += 1; } } y += 1 + self.header_gap; @@ -294,8 +298,6 @@ where let highlight_symbol = self.highlight_symbol.unwrap_or(""); let blank_symbol = iter::repeat(" ").take(highlight_symbol.width()).collect::(); - let header_index = self.header.by_ref().into_iter().position(|r| r.to_string() == "ID").unwrap_or_else(|| 0); - // Draw rows let default_style = Style::default(); if y < table_area.bottom() {