From 3cc22de712415342e4865eef099fcfde49bcf734 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leonardo=20Hern=C3=A1ndez=20Hern=C3=A1ndez?= Date: Mon, 31 Oct 2022 23:33:23 -0600 Subject: [PATCH] client: don't change border color during drags Fixes: https://github.com/djpohly/dwl/issues/318 --- dwl.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/dwl.c b/dwl.c index 2baa659..9080115 100644 --- a/dwl.c +++ b/dwl.c @@ -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;