From 9d587d759f45fac9bad49b7d1de8a45c4d56d652 Mon Sep 17 00:00:00 2001 From: emersion Date: Thu, 26 Oct 2017 18:58:44 +0200 Subject: Do not set hw cursor if disabled when switching VT --- backend/drm/backend.c | 2 +- backend/drm/drm.c | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'backend') 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) { -- cgit v1.2.3