cursor: fix wl_pointer.set_cursor hotspot updates

A client might update the cursor with the same wl_surface as
before, but with a different hotspot. Don't ignore such updates.

Fixes: 9c9e3f6263 ("cursor: ignore wlr_cursor_set_surface() with same surface")
This commit is contained in:
Simon Ser 2023-06-02 20:50:54 +02:00 committed by Alexander Orzechowski
parent 8c0eeb6a86
commit 09c87cec3f

View file

@ -463,7 +463,9 @@ void wlr_cursor_set_surface(struct wlr_cursor *cur, struct wlr_surface *surface,
struct wlr_cursor_output_cursor *output_cursor; struct wlr_cursor_output_cursor *output_cursor;
wl_list_for_each(output_cursor, &cur->state->output_cursors, link) { wl_list_for_each(output_cursor, &cur->state->output_cursors, link) {
if (surface == output_cursor->surface) { if (surface == output_cursor->surface &&
hotspot_x == output_cursor->surface_hotspot.x &&
hotspot_y == output_cursor->surface_hotspot.y) {
continue; continue;
} }