Sway clients: Exit gracefully when compositor is unavailable

This commit is contained in:
Ryan Dwyer 2018-10-15 21:57:59 +10:00
parent 56c388b510
commit 32ba8154b8
5 changed files with 24 additions and 5 deletions

View file

@ -586,7 +586,11 @@ bool bar_setup(struct swaybar *bar, const char *socket_path) {
} }
bar->display = wl_display_connect(NULL); bar->display = wl_display_connect(NULL);
assert(bar->display); if (!bar->display) {
sway_abort("Unable to connect to the compositor. "
"If your compositor is running, check or set the "
"WAYLAND_DISPLAY environment variable.");
}
struct wl_registry *registry = wl_display_get_registry(bar->display); struct wl_registry *registry = wl_display_get_registry(bar->display);
wl_registry_add_listener(registry, &registry_listener, bar); wl_registry_add_listener(registry, &registry_listener, bar);

View file

@ -222,7 +222,12 @@ int main(int argc, const char **argv) {
} }
state.display = wl_display_connect(NULL); state.display = wl_display_connect(NULL);
assert(state.display); if (!state.display) {
wlr_log(WLR_ERROR, "Unable to connect to the compositor. "
"If your compositor is running, check or set the "
"WAYLAND_DISPLAY environment variable.");
return 1;
}
struct wl_registry *registry = wl_display_get_registry(state.display); struct wl_registry *registry = wl_display_get_registry(state.display);
wl_registry_add_listener(registry, &registry_listener, &state); wl_registry_add_listener(registry, &registry_listener, &state);

View file

@ -388,7 +388,9 @@ int main(int argc, char *argv[]) {
state.display = wl_display_connect(NULL); state.display = wl_display_connect(NULL);
if (state.display == NULL) { if (state.display == NULL) {
wlr_log(WLR_ERROR, "Failed to create display"); wlr_log(WLR_ERROR, "Unable to connect to the compositor. "
"If your compositor is running, check or set the "
"WAYLAND_DISPLAY environment variable.");
return -3; return -3;
} }

View file

@ -908,7 +908,11 @@ int main(int argc, char **argv) {
wl_list_init(&state.surfaces); wl_list_init(&state.surfaces);
state.xkb.context = xkb_context_new(XKB_CONTEXT_NO_FLAGS); state.xkb.context = xkb_context_new(XKB_CONTEXT_NO_FLAGS);
state.display = wl_display_connect(NULL); state.display = wl_display_connect(NULL);
assert(state.display); if (!state.display) {
sway_abort("Unable to connect to the compositor. "
"If your compositor is running, check or set the "
"WAYLAND_DISPLAY environment variable.");
}
struct wl_registry *registry = wl_display_get_registry(state.display); struct wl_registry *registry = wl_display_get_registry(state.display);
wl_registry_add_listener(registry, &registry_listener, &state); wl_registry_add_listener(registry, &registry_listener, &state);

View file

@ -342,7 +342,11 @@ static const struct wl_registry_listener registry_listener = {
void swaynag_setup(struct swaynag *swaynag) { void swaynag_setup(struct swaynag *swaynag) {
swaynag->display = wl_display_connect(NULL); swaynag->display = wl_display_connect(NULL);
assert(swaynag->display); if (!swaynag->display) {
sway_abort("Unable to connect to the compositor. "
"If your compositor is running, check or set the "
"WAYLAND_DISPLAY environment variable.");
}
swaynag->scale = 1; swaynag->scale = 1;
wl_list_init(&swaynag->outputs); wl_list_init(&swaynag->outputs);