cursor: ignore wlr_cursor_set_surface() with same surface

Avoids damaging the output and rendering the cursor again if it
hasn't changed.
This commit is contained in:
Simon Ser 2023-06-01 17:31:37 +02:00 committed by Alexander Orzechowski
parent 75d03f2b68
commit 9c9e3f6263

View file

@ -462,6 +462,10 @@ 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) {
continue;
}
cursor_output_cursor_reset_image(output_cursor); cursor_output_cursor_reset_image(output_cursor);
output_cursor->surface = surface; output_cursor->surface = surface;