diff options
Diffstat (limited to 'src/layout')
| -rw-r--r-- | src/layout/mod.rs | 3 | ||||
| -rw-r--r-- | src/layout/scrolling.rs | 13 | ||||
| -rw-r--r-- | src/layout/workspace.rs | 4 |
3 files changed, 10 insertions, 10 deletions
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<W: LayoutElement> Layout<W> { 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<W: LayoutElement> ScrollingSpace<W> { (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<W: LayoutElement> Workspace<W> { 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) { |
