diff options
-rw-r--r-- | sway/main.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/sway/main.c b/sway/main.c index 6e3f6b67..6e2f16db 100644 --- a/sway/main.c +++ b/sway/main.c | |||
@@ -31,10 +31,16 @@ static int exit_value = 0; | |||
31 | struct sway_server server = {0}; | 31 | struct sway_server server = {0}; |
32 | 32 | ||
33 | void sway_terminate(int exit_code) { | 33 | void sway_terminate(int exit_code) { |
34 | terminate_request = true; | 34 | if (!server.wl_display) { |
35 | exit_value = exit_code; | 35 | // Running as IPC client |
36 | ipc_event_shutdown("exit"); | 36 | exit(exit_code); |
37 | wl_display_terminate(server.wl_display); | 37 | } else { |
38 | // Running as server | ||
39 | terminate_request = true; | ||
40 | exit_value = exit_code; | ||
41 | ipc_event_shutdown("exit"); | ||
42 | wl_display_terminate(server.wl_display); | ||
43 | } | ||
38 | } | 44 | } |
39 | 45 | ||
40 | void sig_handler(int signal) { | 46 | void sig_handler(int signal) { |