diff options
author | Ian Fan <ianfan0@gmail.com> | 2018-12-07 12:33:45 +0000 |
---|---|---|
committer | Ian Fan <ianfan0@gmail.com> | 2018-12-31 20:40:18 +0000 |
commit | e6cb55e2f8176b0ea8a6dbf15c728c56d8b74056 (patch) | |
tree | 5de223965d04be7bf2835e0ca391426185494261 /swaybar/tray/tray.c | |
parent | swaybar: implement icon themes and lookup for tray (diff) | |
download | sway-e6cb55e2f8176b0ea8a6dbf15c728c56d8b74056.tar.gz sway-e6cb55e2f8176b0ea8a6dbf15c728c56d8b74056.tar.zst sway-e6cb55e2f8176b0ea8a6dbf15c728c56d8b74056.zip |
swaybar: add StatusNotifierHost to tray
Diffstat (limited to 'swaybar/tray/tray.c')
-rw-r--r-- | swaybar/tray/tray.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/swaybar/tray/tray.c b/swaybar/tray/tray.c index c1d3b50b..e760812c 100644 --- a/swaybar/tray/tray.c +++ b/swaybar/tray/tray.c | |||
@@ -4,8 +4,10 @@ | |||
4 | #include <string.h> | 4 | #include <string.h> |
5 | #include "swaybar/bar.h" | 5 | #include "swaybar/bar.h" |
6 | #include "swaybar/tray/icon.h" | 6 | #include "swaybar/tray/icon.h" |
7 | #include "swaybar/tray/host.h" | ||
7 | #include "swaybar/tray/tray.h" | 8 | #include "swaybar/tray/tray.h" |
8 | #include "swaybar/tray/watcher.h" | 9 | #include "swaybar/tray/watcher.h" |
10 | #include "list.h" | ||
9 | #include "log.h" | 11 | #include "log.h" |
10 | 12 | ||
11 | struct swaybar_tray *create_tray(struct swaybar *bar) { | 13 | struct swaybar_tray *create_tray(struct swaybar *bar) { |
@@ -29,6 +31,11 @@ struct swaybar_tray *create_tray(struct swaybar *bar) { | |||
29 | tray->watcher_xdg = create_watcher("freedesktop", tray->bus); | 31 | tray->watcher_xdg = create_watcher("freedesktop", tray->bus); |
30 | tray->watcher_kde = create_watcher("kde", tray->bus); | 32 | tray->watcher_kde = create_watcher("kde", tray->bus); |
31 | 33 | ||
34 | tray->items = create_list(); | ||
35 | |||
36 | init_host(&tray->host_xdg, "freedesktop", tray); | ||
37 | init_host(&tray->host_kde, "kde", tray); | ||
38 | |||
32 | init_themes(&tray->themes, &tray->basedirs); | 39 | init_themes(&tray->themes, &tray->basedirs); |
33 | 40 | ||
34 | return tray; | 41 | return tray; |
@@ -38,6 +45,12 @@ void destroy_tray(struct swaybar_tray *tray) { | |||
38 | if (!tray) { | 45 | if (!tray) { |
39 | return; | 46 | return; |
40 | } | 47 | } |
48 | finish_host(&tray->host_xdg); | ||
49 | finish_host(&tray->host_kde); | ||
50 | for (int i = 0; i < tray->items->length; ++i) { | ||
51 | free(tray->items->items[0]); | ||
52 | } | ||
53 | list_free(tray->items); | ||
41 | destroy_watcher(tray->watcher_xdg); | 54 | destroy_watcher(tray->watcher_xdg); |
42 | destroy_watcher(tray->watcher_kde); | 55 | destroy_watcher(tray->watcher_kde); |
43 | sd_bus_flush_close_unref(tray->bus); | 56 | sd_bus_flush_close_unref(tray->bus); |