mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-10-29 05:40:12 -04:00
backend/drm: make drm_lease implementation follow docs
This ensures compositors get a output_destroy signal when the lease is granted and a new_output signal when the lease is revoked.
This commit is contained in:
parent
c6de47d415
commit
be555a9a99
1 changed files with 6 additions and 0 deletions
|
|
@ -1762,6 +1762,10 @@ void scan_drm_connectors(struct wlr_drm_backend *drm,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (wlr_conn && wlr_conn->lease) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
// If the hotplug event contains a connector ID, ignore any other
|
// If the hotplug event contains a connector ID, ignore any other
|
||||||
// connector.
|
// connector.
|
||||||
if (event != NULL && event->connector_id != 0 &&
|
if (event != NULL && event->connector_id != 0 &&
|
||||||
|
|
@ -2150,6 +2154,7 @@ struct wlr_drm_lease *wlr_drm_create_lease(struct wlr_output **outputs,
|
||||||
get_drm_connector_from_output(outputs[i]);
|
get_drm_connector_from_output(outputs[i]);
|
||||||
conn->lease = lease;
|
conn->lease = lease;
|
||||||
conn->crtc->lease = lease;
|
conn->crtc->lease = lease;
|
||||||
|
disconnect_drm_connector(conn);
|
||||||
}
|
}
|
||||||
|
|
||||||
return lease;
|
return lease;
|
||||||
|
|
@ -2186,4 +2191,5 @@ void drm_lease_destroy(struct wlr_drm_lease *lease) {
|
||||||
}
|
}
|
||||||
|
|
||||||
free(lease);
|
free(lease);
|
||||||
|
scan_drm_connectors(drm, NULL);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue