diff --git a/src/wayland/meta-xwayland.c b/src/wayland/meta-xwayland.c index 774997611..c3baaff05 100644 --- a/src/wayland/meta-xwayland.c +++ b/src/wayland/meta-xwayland.c @@ -26,6 +26,8 @@ #include "meta-xwayland.h" #include "meta-xwayland-private.h" +#include + #include #include #include @@ -397,25 +399,30 @@ xserver_died (GObject *source, if (!g_subprocess_wait_finish (proc, result, &error)) { - if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) - g_error ("Failed to finish waiting for Xwayland: %s", error->message); + if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) + return; + + g_warning ("Failed to finish waiting for Xwayland: %s", error->message); } else if (!g_subprocess_get_successful (proc)) - g_error ("X Wayland crashed; aborting"); + g_warning ("X Wayland crashed; exiting"); else { /* For now we simply abort if we see the server exit. * * In the future X will only be loaded lazily for legacy X support * but for now it's a hard requirement. */ - g_error ("Spurious exit of X Wayland server"); + g_warning ("Spurious exit of X Wayland server"); } + + meta_exit (META_EXIT_ERROR); } static int x_io_error (Display *display) { - g_error ("Connection to xwayland lost"); + g_warning ("Connection to xwayland lost"); + meta_exit (META_EXIT_ERROR); return 0; }