diff options
author | Kristian Høgsberg <krh@bitplanet.net> | 2011-07-21 09:51:30 -0700 |
---|---|---|
committer | Kristian Høgsberg <krh@bitplanet.net> | 2012-03-27 09:31:59 -0400 |
commit | 6aee3077a3262839a570320754f3da2d372f542d (patch) | |
tree | 4c8c00081b6553d28283915f46f2e5d55ead3dd7 | |
parent | 913c309bf33a1e63f6969c62834e75a6611a9c73 (diff) |
xwayland: Don't crash if the xserver object isn't available
-rw-r--r-- | hw/xfree86/xwayland/xwayland-window.c | 5 | ||||
-rw-r--r-- | 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 |