xserver: Set DISPLAY for clients launched by the compositor
authorKristian Høgsberg <krh@bitplanet.net>
Sun, 15 Jan 2012 21:04:33 +0000 (16:04 -0500)
committerKristian Høgsberg <krh@bitplanet.net>
Sun, 15 Jan 2012 21:04:33 +0000 (16:04 -0500)
src/compositor.c
src/xserver-launcher.c

index 200e26c..4a5e51c 100644 (file)
@@ -2117,12 +2117,12 @@ int main(int argc, char *argv[])
        ec->option_idle_time = option_idle_time;
        ec->idle_time = option_idle_time;
 
-       if (shell_init(ec) < 0)
-               exit(EXIT_FAILURE);
-
        if (xserver)
                weston_xserver_init(ec);
 
+       if (shell_init(ec) < 0)
+               exit(EXIT_FAILURE);
+
        if (wl_display_add_socket(display, option_socket_name)) {
                fprintf(stderr, "failed to add socket: %m\n");
                exit(EXIT_FAILURE);
index 5ff472f..c7b8e98 100644 (file)
@@ -1610,7 +1610,7 @@ weston_xserver_init(struct weston_compositor *compositor)
 {
        struct wl_display *display = compositor->wl_display;
        struct weston_xserver *mxs;
-       char lockfile[256];
+       char lockfile[256], display_name[8];
 
        mxs = malloc(sizeof *mxs);
        memset(mxs, 0, sizeof *mxs);
@@ -1649,7 +1649,9 @@ weston_xserver_init(struct weston_compositor *compositor)
                return -1;
        }
 
-       fprintf(stderr, "xserver listening on display :%d\n", mxs->display);
+       snprintf(display_name, sizeof display_name, ":%d", mxs->display);
+       fprintf(stderr, "xserver listening on display %s\n", display_name);
+       setenv("DISPLAY", display_name, 1);
 
        mxs->loop = wl_display_get_event_loop(display);
        mxs->abstract_source =