diff options
author | Brian Ashworth <bosrsf04@gmail.com> | 2018-10-08 11:40:13 -0400 |
---|---|---|
committer | Brian Ashworth <bosrsf04@gmail.com> | 2018-10-09 08:12:46 -0400 |
commit | 1c969e86f50065985ddf35b7fef62c14aa7688a5 (patch) | |
tree | 1d44b026ffb8cd67595b695ac92275ba320ee4d9 /swaybar/config.c | |
parent | Merge pull request #2804 from Emantor/swaynag-double-free (diff) | |
download | sway-1c969e86f50065985ddf35b7fef62c14aa7688a5.tar.gz sway-1c969e86f50065985ddf35b7fef62c14aa7688a5.tar.zst sway-1c969e86f50065985ddf35b7fef62c14aa7688a5.zip |
Implement bar bindsym
Diffstat (limited to 'swaybar/config.c')
-rw-r--r-- | swaybar/config.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/swaybar/config.c b/swaybar/config.c index 4e851cca..c646fe66 100644 --- a/swaybar/config.c +++ b/swaybar/config.c | |||
@@ -3,6 +3,8 @@ | |||
3 | #include <string.h> | 3 | #include <string.h> |
4 | #include "swaybar/config.h" | 4 | #include "swaybar/config.h" |
5 | #include "wlr-layer-shell-unstable-v1-client-protocol.h" | 5 | #include "wlr-layer-shell-unstable-v1-client-protocol.h" |
6 | #include "stringop.h" | ||
7 | #include "list.h" | ||
6 | 8 | ||
7 | uint32_t parse_position(const char *position) { | 9 | uint32_t parse_position(const char *position) { |
8 | uint32_t horiz = ZWLR_LAYER_SURFACE_V1_ANCHOR_LEFT | | 10 | uint32_t horiz = ZWLR_LAYER_SURFACE_V1_ANCHOR_LEFT | |
@@ -34,6 +36,7 @@ struct swaybar_config *init_config(void) { | |||
34 | config->binding_mode_indicator = true; | 36 | config->binding_mode_indicator = true; |
35 | config->wrap_scroll = false; | 37 | config->wrap_scroll = false; |
36 | config->workspace_buttons = true; | 38 | config->workspace_buttons = true; |
39 | config->bindings = create_list(); | ||
37 | wl_list_init(&config->outputs); | 40 | wl_list_init(&config->outputs); |
38 | 41 | ||
39 | /* height */ | 42 | /* height */ |
@@ -74,6 +77,13 @@ void free_config(struct swaybar_config *config) { | |||
74 | free(config->font); | 77 | free(config->font); |
75 | free(config->mode); | 78 | free(config->mode); |
76 | free(config->sep_symbol); | 79 | free(config->sep_symbol); |
80 | while (config->bindings->length) { | ||
81 | struct swaybar_binding *binding = config->bindings->items[0]; | ||
82 | list_del(config->bindings, 0); | ||
83 | free(binding->command); | ||
84 | free(binding); | ||
85 | } | ||
86 | list_free(config->bindings); | ||
77 | struct config_output *coutput, *tmp; | 87 | struct config_output *coutput, *tmp; |
78 | wl_list_for_each_safe(coutput, tmp, &config->outputs, link) { | 88 | wl_list_for_each_safe(coutput, tmp, &config->outputs, link) { |
79 | wl_list_remove(&coutput->link); | 89 | wl_list_remove(&coutput->link); |