From afed68101cdfc18c49aaa6b322afc4a0983a7764 Mon Sep 17 00:00:00 2001 From: Squibid Date: Mon, 22 Dec 2025 20:52:25 -0500 Subject: [PATCH] ensure that when a surface is closed that it is no longer focused this fixes the regression introduced in the previous commit --- src/LayerSurface.zig | 6 ++++++ src/View.zig | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/src/LayerSurface.zig b/src/LayerSurface.zig index 7c03008..f31b6f5 100644 --- a/src/LayerSurface.zig +++ b/src/LayerSurface.zig @@ -113,6 +113,12 @@ fn handleMap( fn handleUnmap(listener: *wl.Listener(void)) void { const layer_surface: *LayerSurface = @fieldParentPtr("unmap", listener); + if (server.seat.focused_surface) |fs| { + if (fs == .layer_surface and fs.layer_surface == layer_surface) { + server.seat.focusSurface(null); + } + } + // FIXME: this crashes mez when killing mez layer_surface.output.arrangeLayers(); diff --git a/src/View.zig b/src/View.zig index 553f3c8..2320848 100644 --- a/src/View.zig +++ b/src/View.zig @@ -166,6 +166,12 @@ fn handleUnmap(listener: *wl.Listener(void)) void { view.mapped = false; // we do this before any work is done so that nobody tries // any funny business + if (server.seat.focused_surface) |fs| { + if (fs == .view and fs.view == view) { + server.seat.focusSurface(null); + } + } + view.request_fullscreen.link.remove(); view.request_move.link.remove(); view.request_resize.link.remove();