summaryrefslogtreecommitdiffstats
path: root/sway/commands/bar/hidden_state.c
diff options
context:
space:
mode:
Diffstat (limited to 'sway/commands/bar/hidden_state.c')
-rw-r--r--sway/commands/bar/hidden_state.c34
1 files changed, 15 insertions, 19 deletions
diff --git a/sway/commands/bar/hidden_state.c b/sway/commands/bar/hidden_state.c
index 502ce2c4..28adf6c7 100644
--- a/sway/commands/bar/hidden_state.c
+++ b/sway/commands/bar/hidden_state.c
@@ -32,7 +32,7 @@ static struct cmd_results *bar_set_hidden_state(struct bar_config *bar,
32 } 32 }
33 // free old mode 33 // free old mode
34 free(old_state); 34 free(old_state);
35 return cmd_results_new(CMD_SUCCESS, NULL, NULL); 35 return NULL;
36} 36}
37 37
38struct cmd_results *bar_cmd_hidden_state(int argc, char **argv) { 38struct cmd_results *bar_cmd_hidden_state(int argc, char **argv) {
@@ -50,24 +50,20 @@ struct cmd_results *bar_cmd_hidden_state(int argc, char **argv) {
50 50
51 const char *state = argv[0]; 51 const char *state = argv[0];
52 if (config->reading) { 52 if (config->reading) {
53 return bar_set_hidden_state(config->current_bar, state); 53 error = bar_set_hidden_state(config->current_bar, state);
54 } 54 } else {
55 55 const char *id = argc == 2 ? argv[1] : NULL;
56 const char *id = NULL; 56 for (int i = 0; i < config->bars->length; ++i) {
57 if (argc == 2) { 57 struct bar_config *bar = config->bars->items[i];
58 id = argv[1]; 58 if (id) {
59 } 59 if (strcmp(id, bar->id) == 0) {
60 struct bar_config *bar; 60 error = bar_set_hidden_state(bar, state);
61 for (int i = 0; i < config->bars->length; ++i) { 61 break;
62 bar = config->bars->items[i]; 62 }
63 if (id && strcmp(id, bar->id) == 0) { 63 } else if ((error = bar_set_hidden_state(bar, state))) {
64 return bar_set_hidden_state(bar, state); 64 break;
65 } 65 }
66
67 error = bar_set_hidden_state(bar, state);
68 if (error) {
69 return error;
70 } 66 }
71 } 67 }
72 return cmd_results_new(CMD_SUCCESS, NULL, NULL); 68 return error ? error : cmd_results_new(CMD_SUCCESS, NULL, NULL);
73} 69}