aboutsummaryrefslogtreecommitdiff
path: root/backend/drm
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2017-10-28 15:09:38 -0400
committerDrew DeVault <sir@cmpwn.com>2017-10-28 15:09:38 -0400
commitfa9c6ecc53355a53d442036b0a6e98588d2abed7 (patch)
treec329e2d9a74dc0dd2c9c47a81d0d8bc9124e9b0b /backend/drm
parent4281aefbf8172c8ca99a7ecf9543ddd5965d830f (diff)
Fix segfault in DRM cursor
Diffstat (limited to 'backend/drm')
-rw-r--r--backend/drm/drm.c14
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;