From 9c5266ac7694987d2230228b116c24707ca619cb Mon Sep 17 00:00:00 2001 From: John Lindgren Date: Mon, 17 Jul 2023 02:01:02 -0400 Subject: [PATCH] Chase wlroots: Use wlr_cursor_set_xcursor() Chases: 18bafbfc57039e16d1dabd78b882b3d6477f76b5 xcursor-manager: drop wlr_xcursor_manager_set_cursor_image() --- src/input/cursor.c | 15 +++++++++++---- subprojects/wlroots.wrap | 2 +- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/input/cursor.c b/src/input/cursor.c index 4764f2ea..0c013105 100644 --- a/src/input/cursor.c +++ b/src/input/cursor.c @@ -252,8 +252,8 @@ cursor_set(struct seat *seat, enum lab_cursors cursor) return; } - wlr_xcursor_manager_set_cursor_image( - seat->xcursor_manager, cursor_names[cursor], seat->cursor); + wlr_cursor_set_xcursor(seat->cursor, seat->xcursor_manager, + cursor_names[cursor]); seat->server_cursor = cursor; } @@ -274,8 +274,15 @@ cursor_update_image(struct seat *seat) } return; } - wlr_xcursor_manager_set_cursor_image( - seat->xcursor_manager, cursor_names[cursor], seat->cursor); + /* + * Call wlr_cursor_unset_image() first to force wlroots to + * update the cursor (e.g. for a new output). Otherwise, + * wlr_cursor_set_xcursor() may detect that we are setting the + * same cursor as before, and do nothing. + */ + wlr_cursor_unset_image(seat->cursor); + wlr_cursor_set_xcursor(seat->cursor, seat->xcursor_manager, + cursor_names[cursor]); } bool diff --git a/subprojects/wlroots.wrap b/subprojects/wlroots.wrap index 3c4b3c09..d1369b81 100644 --- a/subprojects/wlroots.wrap +++ b/subprojects/wlroots.wrap @@ -1,6 +1,6 @@ [wrap-git] url = https://gitlab.freedesktop.org/wlroots/wlroots.git -revision = 70c1a5724814d2f786f7d3a0e55a05f11af14029 +revision = 18bafbfc57039e16d1dabd78b882b3d6477f76b5 [provide] dependency_names = wlroots -- 2.52.0