diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/layout/scrolling.rs | 3 | ||||
| -rw-r--r-- | src/layout/tab_indicator.rs | 13 | ||||
| -rw-r--r-- | src/window/mod.rs | 2 |
3 files changed, 14 insertions, 4 deletions
diff --git a/src/layout/scrolling.rs b/src/layout/scrolling.rs index 5f746915..bd68a65a 100644 --- a/src/layout/scrolling.rs +++ b/src/layout/scrolling.rs @@ -3820,8 +3820,9 @@ impl<W: LayoutElement> Column<W> { .enumerate() .map(|(tile_idx, (tile, tile_off))| { let is_active = tile_idx == active_idx; + let is_urgent = tile.window().is_urgent(); let tile_pos = tile_off + tile.render_offset(); - TabInfo::from_tile(tile, tile_pos, is_active, &config) + TabInfo::from_tile(tile, tile_pos, is_active, is_urgent, &config) }); // Hide the tab indicator in fullscreen. If you have it configured to overlap the window, diff --git a/src/layout/tab_indicator.rs b/src/layout/tab_indicator.rs index dd048469..e35874e8 100644 --- a/src/layout/tab_indicator.rs +++ b/src/layout/tab_indicator.rs @@ -350,13 +350,16 @@ impl TabInfo { tile: &Tile<W>, position: Point<f64, Logical>, is_active: bool, + is_urgent: bool, config: &niri_config::TabIndicator, ) -> Self { let rules = tile.window().rules(); let rule = rules.tab_indicator; let gradient_from_rule = || { - let (color, gradient) = if is_active { + let (color, gradient) = if is_urgent { + (rule.urgent_color, rule.urgent_gradient) + } else if is_active { (rule.active_color, rule.active_gradient) } else { (rule.inactive_color, rule.inactive_gradient) @@ -366,7 +369,9 @@ impl TabInfo { }; let gradient_from_config = || { - let (color, gradient) = if is_active { + let (color, gradient) = if is_urgent { + (config.urgent_color, config.urgent_gradient) + } else if is_active { (config.active_color, config.active_gradient) } else { (config.inactive_color, config.inactive_gradient) @@ -386,7 +391,9 @@ impl TabInfo { focus_ring_config }; - let (color, gradient) = if is_active { + let (color, gradient) = if is_urgent { + (config.urgent_color, config.urgent_gradient) + } else if is_active { (config.active_color, config.active_gradient) } else { (config.inactive_color, config.inactive_gradient) diff --git a/src/window/mod.rs b/src/window/mod.rs index 4410febc..71aa607b 100644 --- a/src/window/mod.rs +++ b/src/window/mod.rs @@ -220,8 +220,10 @@ impl ResolvedWindowRules { tab_indicator: TabIndicatorRule { active_color: None, inactive_color: None, + urgent_color: None, active_gradient: None, inactive_gradient: None, + urgent_gradient: None, }, draw_border_with_background: None, opacity: None, |
