diff --git a/src/core/session.c b/src/core/session.c index 41f360f7d..30981d577 100644 --- a/src/core/session.c +++ b/src/core/session.c @@ -25,6 +25,8 @@ #include +#include +#include #include "session.h" #include @@ -531,6 +533,12 @@ die_callback (SmcConn smc_conn, SmPointer client_data) * Anything that wants us to go away outside of session management * can use kill(). */ + + /* All of that is true - unless we're a wayland compositor. In which + * case the X server won't go down until we do, so we must die first. + */ + if (meta_is_wayland_compositor ()) + meta_quit (0); } static void