git.lucas.co / cce-compositor
Wayland compositor (wlroots)
git clone https://git.lucas.co/cce-compositor.git

commitcf5a7b907e590ddc45112712c2369510cb54733f
parent523dd8c9c1
authorLucas Galante <[email protected]>
date2026-06-16 12:30
fix(focus): restore window manager focus when layer-surface unmaps

 src/server/layer_shell.rs | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/server/layer_shell.rs b/src/server/layer_shell.rs
index c3d7a49..b114657 100644
--- a/src/server/layer_shell.rs
+++ b/src/server/layer_shell.rs
@@ -507,6 +507,7 @@ unsafe extern "C" fn handle_layer_surface_unmap(listener: *mut ffi::wl_listener,
         if let crate::seat::Focus::LayerSurface(surface) = (*seat).focused {
             if surface == (*wlr_layer_surface).surface {
                 (*seat).focus(crate::seat::Focus::None);
+                (*server).wm.focus_next_visible_window(seat);
             }
         }
         if let LayerShellSeatFocus::NonExclusive(key) = (*seat).layer_shell.scheduled_focus {