diff options
author | Drew DeVault <sir@cmpwn.com> | 2017-10-28 15:09:38 -0400 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2017-10-28 15:09:38 -0400 |
commit | fa9c6ecc53355a53d442036b0a6e98588d2abed7 (patch) | |
tree | c329e2d9a74dc0dd2c9c47a81d0d8bc9124e9b0b /backend/drm | |
parent | 4281aefbf8172c8ca99a7ecf9543ddd5965d830f (diff) |
Fix segfault in DRM cursor
Diffstat (limited to 'backend/drm')
-rw-r--r-- | backend/drm/drm.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/backend/drm/drm.c b/backend/drm/drm.c index a3594bb0..27a8490c 100644 --- a/backend/drm/drm.c +++ b/backend/drm/drm.c @@ -503,13 +503,6 @@ static bool wlr_drm_connector_set_cursor(struct wlr_output *output, struct wlr_drm_crtc *crtc = conn->crtc; struct wlr_drm_plane *plane = crtc->cursor; - 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) { plane = calloc(1, sizeof(*plane)); @@ -520,6 +513,13 @@ static bool wlr_drm_connector_set_cursor(struct wlr_output *output, crtc->cursor = plane; } + if (!buf && update_pixels) { + // Hide the cursor + plane->cursor_enabled = false; + return drm->iface->crtc_set_cursor(drm, crtc, NULL); + } + plane->cursor_enabled = true; + if (!plane->surf.gbm) { int ret; uint64_t w, h; |