From 02f98355e7cb7a4f34129db83a3adb2483e529d7 Mon Sep 17 00:00:00 2001 From: Erich Blume Date: Wed, 3 Jun 2026 18:12:09 -0700 Subject: [PATCH] =?UTF-8?q?feat(tui):=20pad=20the=20attention=20flag=20off?= =?UTF-8?q?=20the=20project=20dot=20(=C2=A78.1)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A one-cell gap between the ⚑ attention flag and the project-colored ● bullet; the blank-flag case already reserves the same width, so rows stay aligned whether or not a flag is present. Co-Authored-By: Claude Opus 4.8 (1M context) --- crates/heph-tui/src/ui.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/crates/heph-tui/src/ui.rs b/crates/heph-tui/src/ui.rs index 09dd1c8..18c6027 100644 --- a/crates/heph-tui/src/ui.rs +++ b/crates/heph-tui/src/ui.rs @@ -267,7 +267,7 @@ fn render_tasks(frame: &mut Frame, app: &App, area: Rect) { // Pad the title so the right side (↻ + date chip) aligns right. let chip_w = chip.len(); let recur_w = if recur { 2 } else { 0 }; // "↻ " - let fixed = 1 + 1 + 1 + 1 + 1; // cursor + flag + bullet + space + trailing space + let fixed = 1 + 1 + 1 + 1 + 1 + 1; // cursor + flag + gap + bullet + space + trailing space let avail = width.saturating_sub(fixed + recur_w + chip_w); let mut title: String = t.title.chars().take(avail).collect(); let pad = avail.saturating_sub(title.chars().count()); @@ -276,6 +276,7 @@ fn render_tasks(frame: &mut Frame, app: &App, area: Rect) { let mut header = vec![ Span::styled(cursor, Style::default().fg(Color::Cyan)), Span::styled(flag, flag_st), + Span::raw(" "), Span::styled("●", bullet_st), Span::raw(" "), Span::styled(title, title_style),