commit e4c1176b726ab9391a3c9eb69670c09ffe3e4f0a
parent 212c6a18a2003f61bbbd7b6f4a881610e31b0c53
Author: Mikkel Oscar Lyderik <mikkeloscar@gmail.com>
Date: Tue, 23 Feb 2016 15:06:04 +0100
Differentiate between all or no outputs
Diffstat:
3 files changed, 6 insertions(+), 1 deletion(-)
diff --git 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
@@ -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
@@ -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;