diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-12-08 09:15:10 +0300 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-12-08 09:25:27 +0300 |
| commit | 27e607ab823c9838452c88bc2c83e91ef5a04191 (patch) | |
| tree | 700c3b51257418d8806450f68f401453779faa1b | |
| parent | a2b27b8790e5e09edeb9933a785f4272efcb1734 (diff) | |
| download | niri-27e607ab823c9838452c88bc2c83e91ef5a04191.tar.gz niri-27e607ab823c9838452c88bc2c83e91ef5a04191.tar.bz2 niri-27e607ab823c9838452c88bc2c83e91ef5a04191.zip | |
layout: Return bool from activate_window()
Avoid an extra has_window() call.
| -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) { |
