aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-06-27 02:19:40 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-06-27 02:19:40 +0300
commitbc764c83cb023a52ca4b12c96ffd6a7547953982 (patch)
tree8d743238c779a085c386015da49fc5a0d8e112ea /src
parent32e3d7b7fd215efd021d8869207b018edd0c2c83 (diff)
fix: keep active auto-named tab readable
refs #829
Diffstat (limited to 'src')
-rw-r--r--src/ui/tabs.rs27
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());