aboutsummaryrefslogtreecommitdiffstats
path: root/swaybar
diff options
context:
space:
mode:
authorLibravatar Ian Fan <ianfan0@gmail.com>2019-01-02 22:31:05 +0000
committerLibravatar Ian Fan <ianfan0@gmail.com>2019-01-08 12:17:53 +0000
commitb666fc76a6de9d4eb24ca9a1e458736b1ffee974 (patch)
treeb620e177d20b94ad35e03ea75fc1ea34558e4a41 /swaybar
parentMerge pull request #3275 from ianyfan/remove-readline (diff)
downloadsway-b666fc76a6de9d4eb24ca9a1e458736b1ffee974.tar.gz
sway-b666fc76a6de9d4eb24ca9a1e458736b1ffee974.tar.zst
sway-b666fc76a6de9d4eb24ca9a1e458736b1ffee974.zip
swaybar: free the right item during tray destruction
Also added a comment to make more obvious the reason for comparing sni->status[0] == 'N'
Diffstat (limited to 'swaybar')
-rw-r--r--swaybar/tray/item.c4
-rw-r--r--swaybar/tray/tray.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/swaybar/tray/item.c b/swaybar/tray/item.c
index 41cacd16..130496ec 100644
--- a/swaybar/tray/item.c
+++ b/swaybar/tray/item.c
@@ -19,7 +19,7 @@
19// TODO menu 19// TODO menu
20 20
21static bool sni_ready(struct swaybar_sni *sni) { 21static bool sni_ready(struct swaybar_sni *sni) {
22 return sni->status && (sni->status[0] == 'N' ? 22 return sni->status && (sni->status[0] == 'N' ? // NeedsAttention
23 sni->attention_icon_name || sni->attention_icon_pixmap : 23 sni->attention_icon_name || sni->attention_icon_pixmap :
24 sni->icon_name || sni->icon_pixmap); 24 sni->icon_name || sni->icon_pixmap);
25} 25}
@@ -396,7 +396,7 @@ uint32_t render_sni(cairo_t *cairo, struct swaybar_output *output, double *x,
396 icon_size = actual_size < ideal_size ? 396 icon_size = actual_size < ideal_size ?
397 actual_size*(ideal_size/actual_size) : ideal_size; 397 actual_size*(ideal_size/actual_size) : ideal_size;
398 icon = cairo_image_surface_scale(sni->icon, icon_size, icon_size); 398 icon = cairo_image_surface_scale(sni->icon, icon_size, icon_size);
399 } else { // draw a sad face 399 } else { // draw a :(
400 icon_size = ideal_size*0.8; 400 icon_size = ideal_size*0.8;
401 icon = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, icon_size, icon_size); 401 icon = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, icon_size, icon_size);
402 cairo_t *cairo_icon = cairo_create(icon); 402 cairo_t *cairo_icon = cairo_create(icon);
diff --git a/swaybar/tray/tray.c b/swaybar/tray/tray.c
index acc300af..0c3517cb 100644
--- a/swaybar/tray/tray.c
+++ b/swaybar/tray/tray.c
@@ -79,7 +79,7 @@ void destroy_tray(struct swaybar_tray *tray) {
79 finish_host(&tray->host_xdg); 79 finish_host(&tray->host_xdg);
80 finish_host(&tray->host_kde); 80 finish_host(&tray->host_kde);
81 for (int i = 0; i < tray->items->length; ++i) { 81 for (int i = 0; i < tray->items->length; ++i) {
82 destroy_sni(tray->items->items[0]); 82 destroy_sni(tray->items->items[i]);
83 } 83 }
84 list_free(tray->items); 84 list_free(tray->items);
85 destroy_watcher(tray->watcher_xdg); 85 destroy_watcher(tray->watcher_xdg);