From 6aee3077a3262839a570320754f3da2d372f542d Mon Sep 17 00:00:00 2001 From: Kristian Høgsberg Date: Thu, 21 Jul 2011 09:51:30 -0700 Subject: xwayland: Don't crash if the xserver object isn't available --- hw/xfree86/xwayland/xwayland-window.c | 5 +++-- hw/xfree86/xwayland/xwayland.c | 13 ++++--------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/hw/xfree86/xwayland/xwayland-window.c b/hw/xfree86/xwayland/xwayland-window.c index 8649bdcc2..f16571330 100644 --- a/hw/xfree86/xwayland/xwayland-window.c +++ b/hw/xfree86/xwayland/xwayland-window.c @@ -166,8 +166,9 @@ xwl_realize_window(WindowPtr window) return FALSE; } - xserver_set_window_id(xwl_screen->xorg_server, - xwl_window->surface, window->drawable.id); + if (xwl_screen->xorg_server) + xserver_set_window_id(xwl_screen->xorg_server, + xwl_window->surface, window->drawable.id); visual = wVisual(window); for (i = 0; i < screen->numVisuals; i++) diff --git a/hw/xfree86/xwayland/xwayland.c b/hw/xfree86/xwayland/xwayland.c index cf50636c1..e9f6964bd 100644 --- a/hw/xfree86/xwayland/xwayland.c +++ b/hw/xfree86/xwayland/xwayland.c @@ -81,16 +81,11 @@ xwl_input_delayed_init(void *data) xwl_input_init(xwl_screen); id = wl_display_get_global(xwl_screen->display, "xserver", 1); - if (id == 0) { - ErrorF("No xserver interface"); - return Success; + if (id != 0) { + xwl_screen->xorg_server = xserver_create (xwl_screen->display, id, 1); + xserver_add_listener(xwl_screen->xorg_server, + &xserver_listener, xwl_screen); } - - xwl_screen->xorg_server = xserver_create (xwl_screen->display, id, 1); - xserver_add_listener(xwl_screen->xorg_server, - &xserver_listener, xwl_screen); - - return Success; } static void -- cgit v1.2.3