make more permissive exclusive focus

now you can call focusstack() while a layer surface is focused and when it gets
unmapped the newly focused clients will be actually focused
This commit is contained in:
Leonardo Hernández Hernández 2022-09-18 17:25:12 -05:00
parent fbaeb85363
commit 1fdc65ff93
Failed to generate hash of commit

6
dwl.c
View file

@ -1145,9 +1145,6 @@ focusclient(Client *c, int lift)
{ {
struct wlr_surface *old = seat->keyboard_state.focused_surface; struct wlr_surface *old = seat->keyboard_state.focused_surface;
int i; int i;
/* Do not focus clients if a layer surface is focused */
if (exclusive_focus)
return;
/* Raise client in stacking order if requested */ /* Raise client in stacking order if requested */
if (c && lift) if (c && lift)
@ -1164,6 +1161,9 @@ focusclient(Client *c, int lift)
c->isurgent = 0; c->isurgent = 0;
client_restack_surface(c); client_restack_surface(c);
/* Don't change border color if there is a exclusive focus
* (at this moment it means that a layer surface is focused) */
if (!exclusive_focus)
for (i = 0; i < 4; i++) for (i = 0; i < 4; i++)
wlr_scene_rect_set_color(c->border[i], focuscolor); wlr_scene_rect_set_color(c->border[i], focuscolor);
} }