aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2025-02-05 08:09:48 +0300
committerIvan Molodetskikh <yalterz@gmail.com>2025-02-10 07:29:33 -0800
commitd7d5a7f8f6c3faf7e1ea1a36df053769243b51ac (patch)
tree5718684422933ece53d342ef88df5efb98d76884 /src
parenta451f75917e427a4b4c7d986ce74e5a3999e563d (diff)
downloadniri-d7d5a7f8f6c3faf7e1ea1a36df053769243b51ac.tar.gz
niri-d7d5a7f8f6c3faf7e1ea1a36df053769243b51ac.tar.bz2
niri-d7d5a7f8f6c3faf7e1ea1a36df053769243b51ac.zip
tab indicator: Add hide-when-single-tab
Diffstat (limited to 'src')
-rw-r--r--src/layout/tab_indicator.rs8
-rw-r--r--src/layout/tests.rs2
2 files changed, 9 insertions, 1 deletions
diff --git a/src/layout/tab_indicator.rs b/src/layout/tab_indicator.rs
index 114fa810..0f9ebaf9 100644
--- a/src/layout/tab_indicator.rs
+++ b/src/layout/tab_indicator.rs
@@ -63,6 +63,13 @@ impl TabIndicator {
return;
}
+ let count = tabs.clone().count();
+ if self.config.hide_when_single_tab && count == 1 {
+ self.shader_locs.clear();
+ self.shaders.clear();
+ return;
+ }
+
// Tab indicators are rendered relative to the tile geometry.
let tile_geo = Rectangle::new(Point::from((0., 0.)), tile_size);
@@ -74,7 +81,6 @@ impl TabIndicator {
let total_prop = self.config.length.total_proportion.unwrap_or(0.5);
let min_length = round(tile_size.h * total_prop.clamp(0., 2.));
- let count = tabs.clone().count();
self.shaders.resize_with(count, Default::default);
self.shader_locs.resize_with(count, Default::default);
diff --git a/src/layout/tests.rs b/src/layout/tests.rs
index 5c1749a3..dee23fc0 100644
--- a/src/layout/tests.rs
+++ b/src/layout/tests.rs
@@ -3242,12 +3242,14 @@ prop_compose! {
prop_compose! {
fn arbitrary_tab_indicator()(
off in any::<bool>(),
+ hide_when_single_tab in any::<bool>(),
width in arbitrary_spacing(),
gap in arbitrary_spacing_neg(),
length in (0f64..2f64),
) -> niri_config::TabIndicator {
niri_config::TabIndicator {
off,
+ hide_when_single_tab,
width: FloatOrInt(width),
gap: FloatOrInt(gap),
length: TabIndicatorLength { total_proportion: Some(length) },