Skip to content

Commit 8e7e040

Browse files
author
ComputelessComputer
committed
fix kanban ghosting while scrolling
1 parent 6e66803 commit 8e7e040

1 file changed

Lines changed: 10 additions & 4 deletions

File tree

apps/tui/src/main.rs

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6671,6 +6671,7 @@ fn render_kanban_tab(stdout: &mut Stdout, app: &mut App, cols: u16, rows: u16) -
66716671
let ids = kanban_task_ids(&app.tasks, *stage);
66726672
let count = ids.len();
66736673
let stage_idx = stage.stage_index();
6674+
let blank_col = pad_to_width("", col_width);
66746675

66756676
// ── Column header: "Todo (25)" ──
66766677
let header = format!("{} ({})", stage.title(), count);
@@ -6681,7 +6682,7 @@ fn render_kanban_tab(stdout: &mut Stdout, app: &mut App, cols: u16, rows: u16) -
66816682
SetForegroundColor(progress_color(*stage)),
66826683
SetAttribute(Attribute::Bold),
66836684
SetAttribute(Attribute::Underlined),
6684-
Print(clamp_text(&header, col_width)),
6685+
Print(pad_to_width(&clamp_text(&header, col_width), col_width)),
66856686
SetAttribute(Attribute::Reset),
66866687
ResetColor
66876688
)?;
@@ -6690,7 +6691,7 @@ fn render_kanban_tab(stdout: &mut Stdout, app: &mut App, cols: u16, rows: u16) -
66906691
stdout,
66916692
SetForegroundColor(progress_color(*stage)),
66926693
SetAttribute(Attribute::Bold),
6693-
Print(clamp_text(&header, col_width)),
6694+
Print(pad_to_width(&clamp_text(&header, col_width), col_width)),
66946695
SetAttribute(Attribute::Reset),
66956696
ResetColor
66966697
)?;
@@ -6732,6 +6733,11 @@ fn render_kanban_tab(stdout: &mut Stdout, app: &mut App, cols: u16, rows: u16) -
67326733
let has_above = scroll_val > 0;
67336734
let has_below = scroll_val + visible_count < count;
67346735

6736+
// Clear this column's list area every frame so prior rows don't ghost while scrolling.
6737+
for y in list_top..list_bottom {
6738+
queue!(stdout, MoveTo(cx, y), Print(&blank_col))?;
6739+
}
6740+
67356741
// ── Overflow: above ──
67366742
let mut y_cur = list_top;
67376743
if has_above {
@@ -6740,7 +6746,7 @@ fn render_kanban_tab(stdout: &mut Stdout, app: &mut App, cols: u16, rows: u16) -
67406746
stdout,
67416747
MoveTo(cx, y_cur),
67426748
SetForegroundColor(Color::DarkGrey),
6743-
Print(clamp_text(&above_text, col_width)),
6749+
Print(pad_to_width(&clamp_text(&above_text, col_width), col_width)),
67446750
ResetColor
67456751
)?;
67466752
y_cur += 1;
@@ -6858,7 +6864,7 @@ fn render_kanban_tab(stdout: &mut Stdout, app: &mut App, cols: u16, rows: u16) -
68586864
stdout,
68596865
MoveTo(cx, y_below),
68606866
SetForegroundColor(Color::DarkGrey),
6861-
Print(clamp_text(&below_text, col_width)),
6867+
Print(pad_to_width(&clamp_text(&below_text, col_width), col_width)),
68626868
ResetColor
68636869
)?;
68646870
}

0 commit comments

Comments
 (0)