diff --git a/src/video/wayland/SDL_waylandmouse.c b/src/video/wayland/SDL_waylandmouse.c index db8381ca1b..c70ea1b5ea 100644 --- a/src/video/wayland/SDL_waylandmouse.c +++ b/src/video/wayland/SDL_waylandmouse.c @@ -910,9 +910,9 @@ static void Wayland_FreeCursorData(SDL_CursorData *d) SDL_WaylandPenTool *tool; wl_list_for_each (tool, &seat->tablet.tool_list, link) { - Wayland_CursorStateDestroyFrameCallback(&tool->cursor_state); - if (tool->cursor_state.current_cursor == d) { + Wayland_CursorStateDestroyFrameCallback(&tool->cursor_state); + // Custom cursor buffers are about to be destroyed, so ensure they are detached. if (!d->is_system_cursor && tool->cursor_state.surface) { wl_surface_attach(seat->pointer.cursor_state.surface, NULL, 0, 0);