diff options
author | Ryan Dwyer <ryandwyer1@gmail.com> | 2016-09-17 17:25:45 +1000 |
---|---|---|
committer | Ryan Dwyer <ryandwyer1@gmail.com> | 2016-09-17 17:25:45 +1000 |
commit | e4cb4d1b5cd32e9455243ee7138bf007343269c2 (patch) | |
tree | 1c96a901a341a314be49844080fdb813b2e7f8b5 | |
parent | 461e250e26ead67351bbecfcd94d8c0f2504a5d2 (diff) | |
download | sway-e4cb4d1b5cd32e9455243ee7138bf007343269c2.tar.xz |
Fix swaybar when running on named outputs.
When using a bar on a named output, load_swaybars() requires the
output to be active (ie. in the root container), but this is not the case if
the bar is added to the last output. To fix this, load_swaybars() is now
called after the output has been added to the root container.
After fixing that, swaybar would segfault due to using the wrong index
variable when loading outputs and config.
-rw-r--r-- | sway/config.c | 3 | ||||
-rw-r--r-- | sway/container.c | 1 | ||||
-rw-r--r-- | swaybar/ipc.c | 2 |
3 files changed, 2 insertions, 4 deletions
diff --git a/sway/config.c b/sway/config.c index a187fe3e..c0fbd210 100644 --- a/sway/config.c +++ b/sway/config.c @@ -936,9 +936,6 @@ void apply_output_config(struct output_config *oc, swayc_t *output) { execvp(cmd[0], cmd); } } - - // reload swaybars - load_swaybars(); } char *do_var_replacement(char *str) { diff --git a/sway/container.c b/sway/container.c index 5614293c..561dcba6 100644 --- a/sway/container.c +++ b/sway/container.c @@ -156,6 +156,7 @@ swayc_t *new_output(wlc_handle handle) { apply_output_config(oc, output); add_child(&root_container, output); + load_swaybars(); // Create workspace char *ws_name = NULL; diff --git a/swaybar/ipc.c b/swaybar/ipc.c index bce9dc79..2c092853 100644 --- a/swaybar/ipc.c +++ b/swaybar/ipc.c @@ -278,7 +278,7 @@ void ipc_bar_init(struct bar *bar, const char *bar_id) { } else { int j = 0; for (j = 0; j < bar->config->outputs->length; ++j) { - const char *conf_name = bar->config->outputs->items[i]; + const char *conf_name = bar->config->outputs->items[j]; if (strcasecmp(name, conf_name) == 0) { use_output = true; break; |