diff --git a/libweston/compositor-drm.c b/libweston/compositor-drm.c index 707ef7ab104e85d015f29af3b98af653f35315a6..10adb463fc01ebe2a1b8d0f33a71ef8e084dcc36 100644 --- a/libweston/compositor-drm.c +++ b/libweston/compositor-drm.c @@ -865,6 +865,16 @@ drm_output_repaint(struct weston_output *output_base, assert(!output->fb_last); + /* If disable_planes is set then assign_planes() wasn't + * called for this render, so we could still have a stale + * cursor plane set up. + */ + if (output->base.disable_planes) { + output->cursor_view = NULL; + output->cursor_plane.x = INT32_MIN; + output->cursor_plane.y = INT32_MIN; + } + drm_output_render(output, damage); if (!output->fb_pending) return -1;