aboutsummaryrefslogtreecommitdiff
path: root/src/layout
diff options
context:
space:
mode:
Diffstat (limited to 'src/layout')
-rw-r--r--src/layout/mod.rs3
-rw-r--r--src/layout/scrolling.rs13
-rw-r--r--src/layout/workspace.rs4
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) {