From 27e607ab823c9838452c88bc2c83e91ef5a04191 Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Sun, 8 Dec 2024 09:15:10 +0300 Subject: layout: Return bool from activate_window() Avoid an extra has_window() call. --- src/layout/mod.rs | 3 +-- src/layout/scrolling.rs | 13 +++++++------ src/layout/workspace.rs | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/layout/mod.rs b/src/layout/mod.rs index 7c573273..2b2c9fc1 100644 --- a/src/layout/mod.rs +++ b/src/layout/mod.rs @@ -1372,9 +1372,8 @@ impl Layout { for (monitor_idx, mon) in monitors.iter_mut().enumerate() { for (workspace_idx, ws) in mon.workspaces.iter_mut().enumerate() { - if ws.has_window(window) { + if ws.activate_window(window) { *active_monitor_idx = monitor_idx; - ws.activate_window(window); // If currently in the middle of a vertical swipe between the target workspace // and some other, don't switch the workspace. diff --git a/src/layout/scrolling.rs b/src/layout/scrolling.rs index 8434c0fd..30c20898 100644 --- a/src/layout/scrolling.rs +++ b/src/layout/scrolling.rs @@ -1175,16 +1175,17 @@ impl ScrollingSpace { (from_view_offset - new_view_offset).abs() / self.working_area.size.w } - pub fn activate_window(&mut self, window: &W::Id) { - let column_idx = self - .columns - .iter() - .position(|col| col.contains(window)) - .unwrap(); + pub fn activate_window(&mut self, window: &W::Id) -> bool { + let column_idx = self.columns.iter().position(|col| col.contains(window)); + let Some(column_idx) = column_idx else { + return false; + }; let column = &mut self.columns[column_idx]; column.activate_window(window); self.activate_column(column_idx); + + true } pub fn start_close_animation_for_window( diff --git a/src/layout/workspace.rs b/src/layout/workspace.rs index 3a4c2628..c3870b8a 100644 --- a/src/layout/workspace.rs +++ b/src/layout/workspace.rs @@ -840,8 +840,8 @@ impl Workspace { self.scrolling.scroll_amount_to_activate(window) } - pub fn activate_window(&mut self, window: &W::Id) { - self.scrolling.activate_window(window); + pub fn activate_window(&mut self, window: &W::Id) -> bool { + self.scrolling.activate_window(window) } pub fn set_insert_hint(&mut self, insert_hint: InsertHint) { -- cgit