summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMax Verevkin <maxxverrr@gmail.com>2022-06-11 15:51:03 +0300
committerMax Verevkin <maxxverrr@gmail.com>2022-06-11 15:51:03 +0300
commit2e02a93670707ba3726e46f9a5dc02c3f55c060c (patch)
tree61bacba1fcfd63e298df5212b6843191946ffb6f /src
parente137a3c57e93b42b8263fdfe8c1d46e5b5e88c11 (diff)
downloadi3bar-mango-2e02a93670707ba3726e46f9a5dc02c3f55c060c.tar.gz
refactor: use Vec::retain_mut()
Diffstat (limited to 'src')
-rw-r--r--src/bar_state.rs17
1 files changed, 3 insertions, 14 deletions
diff --git a/src/bar_state.rs b/src/bar_state.rs
index fc34102..8a2d8cf 100644
--- a/src/bar_state.rs
+++ b/src/bar_state.rs
@@ -221,20 +221,9 @@ impl BarState {
}
pub fn handle_events(&mut self) {
- // This is ugly, let's hope that some version of drain_filter() gets stabilized soon
- // https://github.com/rust-lang/rust/issues/43244
- let mut i = 0;
- while i != self.surfaces.len() {
- if self.surfaces[i].handle_events(
- &self.blocks,
- &mut self.blocks_cache,
- self.blocks_updated,
- ) {
- self.surfaces.remove(i);
- } else {
- i += 1;
- }
- }
+ self.surfaces.retain_mut(|surface| {
+ !surface.handle_events(&self.blocks, &mut self.blocks_cache, self.blocks_updated)
+ });
self.blocks_updated = false;
}
}