diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-06-27 02:19:40 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-06-27 02:19:40 +0300 |
| commit | bc764c83cb023a52ca4b12c96ffd6a7547953982 (patch) | |
| tree | 8d743238c779a085c386015da49fc5a0d8e112ea /src | |
| parent | 32e3d7b7fd215efd021d8869207b018edd0c2c83 (diff) | |
fix: keep active auto-named tab readable
refs #829
Diffstat (limited to 'src')
| -rw-r--r-- | src/ui/tabs.rs | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/src/ui/tabs.rs b/src/ui/tabs.rs index a587c233..4032d353 100644 --- a/src/ui/tabs.rs +++ b/src/ui/tabs.rs @@ -325,7 +325,7 @@ pub(super) fn render_tab_bar(app: &AppState, frame: &mut Frame, area: Rect) { let style = if active { let base = Style::default().fg(panel_contrast_fg(p)).bg(p.accent); if tab.is_auto_named() { - base.add_modifier(Modifier::DIM) + base } else { base.add_modifier(Modifier::BOLD) } @@ -440,6 +440,31 @@ mod tests { } #[test] + fn active_auto_named_tab_keeps_readable_weight() { + let mut app = AppState::test_new(); + let ws = Workspace::test_new("test"); + + app.workspaces = vec![ws]; + app.active = Some(0); + app.view.tab_bar_rect = Rect::new(0, 0, 30, 1); + let view = compute_tab_bar_view(&app.workspaces[0], app.view.tab_bar_rect, 0, true, false); + app.view.tab_hit_areas = view.tab_hit_areas; + + let backend = TestBackend::new(30, 1); + let mut terminal = Terminal::new(backend).unwrap(); + terminal + .draw(|frame| render_tab_bar(&app, frame, app.view.tab_bar_rect)) + .unwrap(); + + let tab_rect = app.view.tab_hit_areas[0]; + let style = terminal.backend().buffer()[(tab_rect.x + 1, tab_rect.y)].style(); + + assert_eq!(style.bg, Some(app.palette.accent)); + assert!(!style.add_modifier.contains(Modifier::DIM)); + assert!(!style.add_modifier.contains(Modifier::BOLD)); + } + + #[test] fn zoom_marker_counts_toward_tab_width() { let mut ws = Workspace::test_new("test"); ws.tabs[0].set_custom_name("abcdefgh".into()); |
