From 1e76716819ecda33dca0e612d62a8f6c2892890d Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Sun, 1 Dec 2024 22:43:21 +0300 Subject: layout: Add a test for windows on other workspace remaining activated --- src/layout/mod.rs | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/layout/mod.rs b/src/layout/mod.rs index cb4bd6f2..6cb4dd44 100644 --- a/src/layout/mod.rs +++ b/src/layout/mod.rs @@ -3840,6 +3840,7 @@ mod tests { min_size: Size, max_size: Size, pending_fullscreen: Cell, + pending_activated: Cell, } #[derive(Debug, Clone)] @@ -3860,6 +3861,7 @@ mod tests { min_size, max_size, pending_fullscreen: Cell::new(false), + pending_activated: Cell::new(false), })) } @@ -3954,7 +3956,9 @@ mod tests { fn set_offscreen_element_id(&self, _id: Option) {} - fn set_activated(&mut self, _active: bool) {} + fn set_activated(&mut self, active: bool) { + self.0.pending_activated.set(active); + } fn set_bounds(&self, _bounds: Size) {} @@ -6361,6 +6365,24 @@ mod tests { check_ops(&ops); } + #[test] + fn windows_on_other_workspaces_remain_activated() { + let ops = [ + Op::AddOutput(3), + Op::AddWindow { + id: 3, + bbox: Rectangle::from_loc_and_size((0, 0), (100, 200)), + min_max_size: Default::default(), + }, + Op::FocusWorkspaceDown, + Op::Refresh { is_active: true }, + ]; + + let layout = check_ops(&ops); + let (_, win) = layout.windows().next().unwrap(); + assert!(win.0.pending_activated.get()); + } + fn arbitrary_spacing() -> impl Strategy { // Give equal weight to: // - 0: the element is disabled -- cgit