From e46238b95ee3e74ee7a54e592276e8b1be2f0ea0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leonardo=20Hern=C3=A1ndez=20Hern=C3=A1ndez?= Date: Thu, 22 Sep 2022 14:36:53 -0500 Subject: [PATCH] change cursor surface in internal calls of motionnotify() and call motionnotify() after unmapping a client and when focusing a client Fixes: https://github.com/djpohly/dwl/issues/308 --- dwl.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/dwl.c b/dwl.c index 6fbc771..3538cf3 100644 --- a/dwl.c +++ b/dwl.c @@ -1199,6 +1199,9 @@ focusclient(Client *c, int lift) return; } + /* Change cursor surface */ + motionnotify(0); + /* Have a client, so focus its top-level wlr_surface */ client_notify_enter(client_surface(c), wlr_seat_get_keyboard(seat)); @@ -1521,7 +1524,7 @@ motionnotify(uint32_t time) /* If there's no client surface under the cursor, set the cursor image to a * default. This is what makes the cursor image appear when you move it * off of a client or over its border. */ - if (!surface && time) + if (!surface) wlr_xcursor_manager_set_cursor_image(cursor_mgr, "left_ptr", cursor); pointerfocus(c, surface, sx, sy, time); @@ -2373,6 +2376,7 @@ end: wl_list_remove(&c->commit.link); wlr_scene_node_destroy(c->scene); printstatus(); + motionnotify(0); } void