aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/handlers/compositor.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/handlers/compositor.rs b/src/handlers/compositor.rs
index e6f950a3..9b164865 100644
--- a/src/handlers/compositor.rs
+++ b/src/handlers/compositor.rs
@@ -199,8 +199,17 @@ impl CompositorHandler for State {
if !is_mapped {
// The toplevel got unmapped.
+ //
+ // Test client: wleird-unmap.
+ let active_window = self.niri.layout.active_window().map(|(m, _)| &m.window);
+ let was_active = active_window == Some(&window);
+
self.niri.layout.remove_window(&window);
+ if was_active {
+ self.maybe_warp_cursor_to_focus();
+ }
+
// Newly-unmapped toplevels must perform the initial commit-configure sequence
// afresh.
let unmapped = Unmapped::new(window);