From 9c9e3f626350fa67405317d60b5dfdb828486b63 Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Thu, 1 Jun 2023 17:31:37 +0200 Subject: cursor: ignore wlr_cursor_set_surface() with same surface Avoids damaging the output and rendering the cursor again if it hasn't changed. --- types/wlr_cursor.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/types/wlr_cursor.c b/types/wlr_cursor.c index fb267402..867e7d90 100644 --- a/types/wlr_cursor.c +++ b/types/wlr_cursor.c @@ -462,6 +462,10 @@ void wlr_cursor_set_surface(struct wlr_cursor *cur, struct wlr_surface *surface, struct wlr_cursor_output_cursor *output_cursor; wl_list_for_each(output_cursor, &cur->state->output_cursors, link) { + if (surface == output_cursor->surface) { + continue; + } + cursor_output_cursor_reset_image(output_cursor); output_cursor->surface = surface; -- cgit v1.2.3