diff --git a/backend/wayland/output.c b/backend/wayland/output.c index 52791679..7e299ecc 100644 --- a/backend/wayland/output.c +++ b/backend/wayland/output.c @@ -18,10 +18,12 @@ int os_create_anonymous_file(off_t size); static struct wl_callback_listener frame_listener; static void surface_frame_callback(void *data, struct wl_callback *cb, uint32_t time) { - struct wlr_output *wlr_output = data; + struct wlr_wl_backend_output *output = data; + struct wlr_output *wlr_output = (struct wlr_output *)output; assert(wlr_output); wl_signal_emit(&wlr_output->events.frame, wlr_output); wl_callback_destroy(cb); + output->frame_callback = NULL; } static struct wl_callback_listener frame_listener = {