aboutsummaryrefslogtreecommitdiffstats
path: root/sway/commands/bar
diff options
context:
space:
mode:
authorLibravatar Ian Fan <ianfan0@gmail.com>2018-09-30 23:06:40 +0100
committerLibravatar Ian Fan <ianfan0@gmail.com>2018-10-14 13:33:12 +0100
commit1f90f92f45580adfbe4ce363181331c182f3f341 (patch)
tree9db916dca5ca91a63e10316a68e6296b4c7ef0f1 /sway/commands/bar
parentMerge pull request #2808 from RedSoxFan/bar-subcommands (diff)
downloadsway-1f90f92f45580adfbe4ce363181331c182f3f341.tar.gz
sway-1f90f92f45580adfbe4ce363181331c182f3f341.tar.zst
sway-1f90f92f45580adfbe4ce363181331c182f3f341.zip
commands: fix sending bar mode/hidden_state updates to all bars
Previously, if a change was sent to all bars, it would only actually change the first bar it encountered, due to return value handling
Diffstat (limited to 'sway/commands/bar')
-rw-r--r--sway/commands/bar/hidden_state.c34
-rw-r--r--sway/commands/bar/mode.c34
2 files changed, 30 insertions, 38 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}
diff --git a/sway/commands/bar/mode.c b/sway/commands/bar/mode.c
index 28e2d77b..dbdd3897 100644
--- a/sway/commands/bar/mode.c
+++ b/sway/commands/bar/mode.c
@@ -33,7 +33,7 @@ static struct cmd_results *bar_set_mode(struct bar_config *bar, const char *mode
33 33
34 // free old mode 34 // free old mode
35 free(old_mode); 35 free(old_mode);
36 return cmd_results_new(CMD_SUCCESS, NULL, NULL); 36 return NULL;
37} 37}
38 38
39struct cmd_results *bar_cmd_mode(int argc, char **argv) { 39struct cmd_results *bar_cmd_mode(int argc, char **argv) {
@@ -51,24 +51,20 @@ struct cmd_results *bar_cmd_mode(int argc, char **argv) {
51 51
52 const char *mode = argv[0]; 52 const char *mode = argv[0];
53 if (config->reading) { 53 if (config->reading) {
54 return bar_set_mode(config->current_bar, mode); 54 error = bar_set_mode(config->current_bar, mode);
55 } 55 } else {
56 56 const char *id = argc == 2 ? argv[1] : NULL;
57 const char *id = NULL; 57 for (int i = 0; i < config->bars->length; ++i) {
58 if (argc == 2) { 58 struct bar_config *bar = config->bars->items[i];
59 id = argv[1]; 59 if (id) {
60 } 60 if (strcmp(id, bar->id) == 0) {
61 61 error = bar_set_mode(bar, mode);
62 struct bar_config *bar; 62 break;
63 for (int i = 0; i < config->bars->length; ++i) { 63 }
64 bar = config->bars->items[i]; 64 } else if ((error = bar_set_mode(bar, mode))) {
65 if (id && strcmp(id, bar->id) == 0) { 65 break;
66 return bar_set_mode(bar, mode); 66 }
67 }
68 error = bar_set_mode(bar, mode);
69 if (error) {
70 return error;
71 } 67 }
72 } 68 }
73 return cmd_results_new(CMD_SUCCESS, NULL, NULL); 69 return error ? error : cmd_results_new(CMD_SUCCESS, NULL, NULL);
74} 70}