aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backend/backend.c2
-rw-r--r--backend/wayland/backend.c4
-rw-r--r--include/wlr/backend/wayland.h6
-rw-r--r--rootston/main.c1
4 files changed, 8 insertions, 5 deletions
diff --git a/backend/backend.c b/backend/backend.c
index 6b32bc6a..54e1cdca 100644
--- a/backend/backend.c
+++ b/backend/backend.c
@@ -53,7 +53,7 @@ struct wlr_egl *wlr_backend_get_egl(struct wlr_backend *backend) {
}
static struct wlr_backend *attempt_wl_backend(struct wl_display *display) {
- struct wlr_backend *backend = wlr_wl_backend_create(display);
+ struct wlr_backend *backend = wlr_wl_backend_create(display, NULL);
if (backend) {
int outputs = 1;
const char *_outputs = getenv("WLR_WL_OUTPUTS");
diff --git a/backend/wayland/backend.c b/backend/wayland/backend.c
index 36fbd8e0..32fdc2b6 100644
--- a/backend/wayland/backend.c
+++ b/backend/wayland/backend.c
@@ -158,7 +158,7 @@ static void handle_display_destroy(struct wl_listener *listener, void *data) {
wlr_wl_backend_destroy(&backend->backend);
}
-struct wlr_backend *wlr_wl_backend_create(struct wl_display *display) {
+struct wlr_backend *wlr_wl_backend_create(struct wl_display *display, const char *remote) {
wlr_log(L_INFO, "Creating wayland backend");
struct wlr_wl_backend *backend = calloc(1, sizeof(struct wlr_wl_backend));
@@ -173,7 +173,7 @@ struct wlr_backend *wlr_wl_backend_create(struct wl_display *display) {
backend->local_display = display;
- backend->remote_display = wl_display_connect(NULL);
+ backend->remote_display = wl_display_connect(remote);
if (!backend->remote_display) {
wlr_log_errno(L_ERROR, "Could not connect to remote display");
return false;
diff --git a/include/wlr/backend/wayland.h b/include/wlr/backend/wayland.h
index b10ffee3..f89a6383 100644
--- a/include/wlr/backend/wayland.h
+++ b/include/wlr/backend/wayland.h
@@ -11,8 +11,12 @@
/**
* Creates a new wlr_wl_backend. This backend will be created with no outputs;
* you must use wlr_wl_output_create to add them.
+ *
+ * The `remote` argument is the name of the host compositor wayland socket. Set
+ * to NULL for the default behaviour (WAYLAND_DISPLAY env variable or wayland-0
+ * default)
*/
-struct wlr_backend *wlr_wl_backend_create(struct wl_display *display);
+struct wlr_backend *wlr_wl_backend_create(struct wl_display *display, const char *remote);
/**
* Adds a new output to this backend. You may remove outputs by destroying them.
diff --git a/rootston/main.c b/rootston/main.c
index 46ec3671..a327576a 100644
--- a/rootston/main.c
+++ b/rootston/main.c
@@ -37,7 +37,6 @@ int main(int argc, char **argv) {
if (server.backend == NULL) {
wlr_log(L_ERROR, "could not start backend");
- wlr_backend_destroy(server.backend);
return 1;
}