From e4c1176b726ab9391a3c9eb69670c09ffe3e4f0a Mon Sep 17 00:00:00 2001 From: Mikkel Oscar Lyderik Date: Tue, 23 Feb 2016 15:06:04 +0100 Subject: [PATCH] Differentiate between all or no outputs --- include/bar/config.h | 1 + swaybar/config.c | 1 + swaybar/ipc.c | 5 ++++- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/include/bar/config.h b/include/bar/config.h index dfad0ba43..fc938c38d 100644 --- a/include/bar/config.h +++ b/include/bar/config.h @@ -27,6 +27,7 @@ struct config { bool strip_workspace_numbers; bool binding_mode_indicator; bool workspace_buttons; + bool all_outputs; list_t *outputs; int height; diff --git a/swaybar/config.c b/swaybar/config.c index 5609f85f7..fddea791f 100644 --- a/swaybar/config.c +++ b/swaybar/config.c @@ -51,6 +51,7 @@ struct config *init_config() { config->strip_workspace_numbers = false; config->binding_mode_indicator = true; config->workspace_buttons = true; + config->all_outputs = false; config->outputs = create_list(); /* height */ diff --git a/swaybar/ipc.c b/swaybar/ipc.c index b5ae67475..312c79b9c 100644 --- a/swaybar/ipc.c +++ b/swaybar/ipc.c @@ -78,10 +78,13 @@ static void ipc_parse_config(struct config *config, const char *payload) { output = json_object_array_get_idx(outputs, i); output_str = json_object_get_string(output); if (strcmp("*", output_str) == 0) { + config->all_outputs = true; break; } list_add(config->outputs, strdup(output_str)); } + } else { + config->all_outputs = true; } if (colors) { @@ -251,7 +254,7 @@ void ipc_bar_init(struct bar *bar, const char *bar_id) { } bool use_output = false; - if (bar->config->outputs->length == 0) { + if (bar->config->all_outputs) { use_output = true; } else { int j = 0;