@@ -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