aboutsummaryrefslogtreecommitdiff
path: root/backend
diff options
context:
space:
mode:
Diffstat (limited to 'backend')
-rw-r--r--backend/drm/backend.c2
-rw-r--r--backend/drm/drm.c2
2 files changed, 3 insertions, 1 deletions
diff --git a/backend/drm/backend.c b/backend/drm/backend.c
index 40b559e2..af2619ff 100644
--- a/backend/drm/backend.c
+++ b/backend/drm/backend.c
@@ -76,7 +76,7 @@ static void session_signal(struct wl_listener *listener, void *data) {
struct wlr_drm_plane *plane = conn->crtc->cursor;
drm->iface->crtc_set_cursor(drm, conn->crtc,
- plane ? plane->cursor_bo : NULL);
+ (plane && plane->cursor_enabled) ? plane->cursor_bo : NULL);
}
} else {
wlr_log(L_INFO, "DRM fd paused");
diff --git a/backend/drm/drm.c b/backend/drm/drm.c
index 441ba24e..a3594bb0 100644
--- a/backend/drm/drm.c
+++ b/backend/drm/drm.c
@@ -505,8 +505,10 @@ static bool wlr_drm_connector_set_cursor(struct wlr_output *output,
if (!buf && update_pixels) {
// Hide the cursor
+ plane->cursor_enabled = false;
return drm->iface->crtc_set_cursor(drm, crtc, NULL);
}
+ plane->cursor_enabled = true;
// We don't have a real cursor plane, so we make a fake one
if (!plane) {