diff options
| author | Max Verevkin <maxxverrr@gmail.com> | 2022-06-11 15:51:03 +0300 |
|---|---|---|
| committer | Max Verevkin <maxxverrr@gmail.com> | 2022-06-11 15:51:03 +0300 |
| commit | 2e02a93670707ba3726e46f9a5dc02c3f55c060c (patch) | |
| tree | 61bacba1fcfd63e298df5212b6843191946ffb6f /src | |
| parent | e137a3c57e93b42b8263fdfe8c1d46e5b5e88c11 (diff) | |
| download | i3bar-mango-2e02a93670707ba3726e46f9a5dc02c3f55c060c.tar.gz | |
refactor: use Vec::retain_mut()
Diffstat (limited to 'src')
| -rw-r--r-- | src/bar_state.rs | 17 |
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; } } |
