aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorFurkan Sahin <furkan-dev@proton.me>2020-03-09 11:09:25 +0000
committerFurkan Sahin <furkan-dev@proton.me>2020-03-09 11:09:25 +0000
commit02415b33982db0058f2ee414a0a839dd79b87c9d (patch)
tree950e0644894076b22a421ed50817409f782998a0 /include
parent43d4c80f6653e51f8efb8869edb8e5c0f8a1ef49 (diff)
tray: track SNI callbacks
This removes any pending messages once the item is destroyed. Furthermore, this installs SNI event calbacks asynchronously in order to prevent sd-bus from bypassing pending messages.
Diffstat (limited to 'include')
-rw-r--r--include/swaybar/tray/item.h13
1 files changed, 10 insertions, 3 deletions
diff --git a/include/swaybar/tray/item.h b/include/swaybar/tray/item.h
index 5ffd8363..c02a5582 100644
--- a/include/swaybar/tray/item.h
+++ b/include/swaybar/tray/item.h
@@ -14,6 +14,15 @@ struct swaybar_pixmap {
unsigned char pixels[];
};
+struct swaybar_sni_slot {
+ struct wl_list link; // swaybar_sni::slots
+ struct swaybar_sni *sni;
+ const char *prop;
+ const char *type;
+ void *dest;
+ sd_bus_slot *slot;
+};
+
struct swaybar_sni {
// icon properties
struct swaybar_tray *tray;
@@ -37,9 +46,7 @@ struct swaybar_sni {
char *menu;
char *icon_theme_path; // non-standard KDE property
- sd_bus_slot *new_icon_slot;
- sd_bus_slot *new_attention_icon_slot;
- sd_bus_slot *new_status_slot;
+ struct wl_list slots; // swaybar_sni_slot::link
};
struct swaybar_sni *create_sni(char *id, struct swaybar_tray *tray);