client: don't change border color during drags

Fixes: https://github.com/djpohly/dwl/issues/318
This commit is contained in:
Leonardo Hernández Hernández 2022-10-31 23:33:23 -06:00
parent 846ce52b92
commit 3cc22de712
Failed to generate hash of commit

8
dwl.c
View file

@ -1185,8 +1185,9 @@ focusclient(Client *c, int lift)
c->isurgent = 0;
client_restack_surface(c);
/* Don't change border color if there is an exclusive focus */
if (!exclusive_focus)
/* Don't change border color if there is an exclusive focus or we are
* handling a drag operation */
if (!exclusive_focus && !seat->drag)
for (i = 0; i < 4; i++)
wlr_scene_rect_set_color(c->border[i], focuscolor);
}
@ -2261,6 +2262,9 @@ void
startdrag(struct wl_listener *listener, void *data)
{
struct wlr_drag *drag = data;
/* During drag the focus isn't sent to clients, this causes that
* we don't update border color acording the pointer coordinates */
focusclient(NULL, 0);
if (!drag->icon)
return;