From 4017a27b67574bc6eb68c964ad50fde8c3c1348c Mon Sep 17 00:00:00 2001
From: Guido Cella <guidocella91@gmail.com>
Date: Thu, 3 Sep 2020 18:58:27 +0200
Subject: fix focus leave condition

needs refactoring and testing
---
 dwl.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/dwl.c b/dwl.c
index 08138a4..ed5ec5b 100644
--- a/dwl.c
+++ b/dwl.c
@@ -2067,10 +2067,11 @@ void
 unmaplayersurface(LayerSurface *layersurface)
 {
 	if (
-		seat->keyboard_state.focused_surface
+		layersurface->layer_surface->current.keyboard_interactive
+		&& seat->keyboard_state.focused_surface
 		&& wlr_surface_is_layer_surface(seat->keyboard_state.focused_surface)
-		&& !wlr_layer_surface_v1_from_wlr_surface(seat->keyboard_state.focused_surface)
-			->current.keyboard_interactive
+		&& wlr_layer_surface_v1_from_wlr_surface(seat->keyboard_state.focused_surface)
+			== layersurface->layer_surface
 	)
 		wlr_seat_keyboard_notify_clear_focus(seat);
 
-- 
cgit v1.2.3