aboutsummaryrefslogtreecommitdiff
path: root/sway/desktop
diff options
context:
space:
mode:
Diffstat (limited to 'sway/desktop')
-rw-r--r--sway/desktop/layer_shell.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/sway/desktop/layer_shell.c b/sway/desktop/layer_shell.c
index 9289bb4a..b754b1fa 100644
--- a/sway/desktop/layer_shell.c
+++ b/sway/desktop/layer_shell.c
@@ -301,6 +301,15 @@ static void handle_surface_commit(struct wl_listener *listener, void *data) {
}
static void unmap(struct sway_layer_surface *sway_layer) {
+ struct sway_seat *seat;
+ wl_list_for_each(seat, &server.input->seats, link) {
+ if (seat->focused_layer == sway_layer->layer_surface) {
+ seat_set_focus_layer(seat, NULL);
+ }
+ }
+
+ cursor_rebase_all();
+
struct wlr_output *wlr_output = sway_layer->layer_surface->output;
if (wlr_output == NULL) {
return;
@@ -311,15 +320,6 @@ static void unmap(struct sway_layer_surface *sway_layer) {
}
output_damage_surface(output, sway_layer->geo.x, sway_layer->geo.y,
sway_layer->layer_surface->surface, true);
-
- struct sway_seat *seat;
- wl_list_for_each(seat, &server.input->seats, link) {
- if (seat->focused_layer == sway_layer->layer_surface) {
- seat_set_focus_layer(seat, NULL);
- }
- }
-
- cursor_rebase_all();
}
static void handle_destroy(struct wl_listener *listener, void *data) {