diff --git a/hw/xwayland/xwayland-cursor.c b/hw/xwayland/xwayland-cursor.c index 74dfe4e7e..7d14a3d52 100644 --- a/hw/xwayland/xwayland-cursor.c +++ b/hw/xwayland/xwayland-cursor.c @@ -100,6 +100,8 @@ frame_callback(void *data, uint32_t time) { struct xwl_seat *xwl_seat = data; + + wl_callback_destroy (xwl_seat->cursor_frame_cb); xwl_seat->cursor_frame_cb = NULL; if (xwl_seat->cursor_needs_update) { xwl_seat->cursor_needs_update = FALSE; diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c index c65a22fab..97d998ead 100644 --- a/hw/xwayland/xwayland.c +++ b/hw/xwayland/xwayland.c @@ -364,6 +364,8 @@ frame_callback(void *data, uint32_t time) { struct xwl_window *xwl_window = data; + + wl_callback_destroy (xwl_window->frame_callback); xwl_window->frame_callback = NULL; }