summaryrefslogtreecommitdiff
path: root/src/bar.rs
diff options
context:
space:
mode:
authorMaxVerevkin <maxxverrr@gmail.com>2022-08-25 09:18:56 +0300
committerMaxVerevkin <maxxverrr@gmail.com>2022-08-25 16:34:15 +0300
commitb154262dcbf0d1a5686921f24eb0b0c41ed95f29 (patch)
treecf1695a7b6dd997463e3a024d34902dad459e9ca /src/bar.rs
parent2d77969c7719e72237ec365c3db9e35c3e178631 (diff)
downloadi3bar-mango-b154262dcbf0d1a5686921f24eb0b0c41ed95f29.tar.gz
feat: add hide_inactive_tags option
Diffstat (limited to 'src/bar.rs')
-rw-r--r--src/bar.rs27
1 files changed, 16 insertions, 11 deletions
diff --git a/src/bar.rs b/src/bar.rs
index ffc4d7c..18ad54c 100644
--- a/src/bar.rs
+++ b/src/bar.rs
@@ -127,24 +127,28 @@ impl Bar {
let mut offset_left = 0.0;
if self.has_tags_provider() {
if self.tags_computed.is_empty() {
- let mut x_offset = 0.0;
// TODO make configurable
- for (id, text) in ["1", "2", "3", "4", "5", "6", "7", "8", "9"]
- .iter()
- .enumerate()
- {
- let tag = compute_tag_label(text, ss.config.font.clone(), &cairo_ctx);
- self.tags_btns.push(x_offset, tag.width, id);
- x_offset += tag.width;
- self.tags_computed.push(tag);
+ for text in ["1", "2", "3", "4", "5", "6", "7", "8", "9"] {
+ self.tags_computed.push(compute_tag_label(
+ text,
+ ss.config.font.clone(),
+ &cairo_ctx,
+ ));
}
}
+ self.tags_btns.clear();
for (i, label) in self.tags_computed.iter().enumerate() {
let state = self.tags_info.get_state(i);
let (bg, fg) = match state {
- TagState::Focused => (ss.config.tag_focused_bg, ss.config.tag_focused_fg),
- TagState::Inactive => (ss.config.tag_bg, ss.config.tag_fg),
TagState::Urgent => (ss.config.tag_urgent_bg, ss.config.tag_urgent_fg),
+ TagState::Focused => (ss.config.tag_focused_bg, ss.config.tag_focused_fg),
+ TagState::Active => (ss.config.tag_bg, ss.config.tag_fg),
+ TagState::Inactive => {
+ if ss.config.hide_inactive_tags {
+ continue;
+ }
+ (ss.config.tag_inactive_bg, ss.config.tag_inactive_fg)
+ }
};
label.render(
&cairo_ctx,
@@ -167,6 +171,7 @@ impl Bar {
overlap: 0.0,
},
);
+ self.tags_btns.push(offset_left, label.width, i);
offset_left += label.width;
}
}