From 4b8e04da041a0cb6b07afe5405bef7e4a61bce5b Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Wed, 7 Feb 2024 13:15:20 +0400 Subject: Activate the new right_of window on its workspace This way when a dialog opens on a different workspace, the user will see it right away when they switch to that workspace. --- src/layout/workspace.rs | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) (limited to 'src/layout/workspace.rs') diff --git a/src/layout/workspace.rs b/src/layout/workspace.rs index 47be5877..07a94321 100644 --- a/src/layout/workspace.rs +++ b/src/layout/workspace.rs @@ -559,18 +559,17 @@ impl Workspace { &mut self, right_of: &W, window: W, - activate: bool, width: ColumnWidth, is_full_width: bool, ) { self.enter_output_for_window(&window); - let idx = self + let right_of_idx = self .columns .iter() .position(|col| col.contains(right_of)) - .unwrap() - + 1; + .unwrap(); + let idx = right_of_idx + 1; let column = Column::new( window, @@ -582,13 +581,12 @@ impl Workspace { ); self.columns.insert(idx, column); - if self.active_column_idx >= idx { - self.active_column_idx += 1; - } - - if activate { + // Activate the new window if right_of was active. + if self.active_column_idx == right_of_idx { self.activate_column(idx); self.activate_prev_column_on_removal = true; + } else if idx <= self.active_column_idx { + self.active_column_idx += 1; } } -- cgit